メインメニューを開く

コピーオンライト

2023年5月19日 (金) 05:05時点におけるAdministrator (トーク | 投稿記録)による版 (ページの作成:「コピーオンライト(Copy On Write、通称:COW)とは、プログラミングにおいて、ある変数のコピーを作成するとき、すぐに…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

コピーオンライト(Copy On Write、通称:COW)とは、プログラミングにおいて、ある変数のコピーを作成するとき、すぐにコピーを作成せず、コピー先に変更(ライト)を加えようとした直前にコピーを行う実装のことをいいます。

コピーオンライトを使用することで「コピーしたけど、やっぱり使わなかった」という無駄を省けます。

一方でマルチスレッド環境下ではバグの温床になる諸刃の剣であり、マルチスレッドに頼る可能性があるならばこの技法は使ってはいけないと言われています。マルチスレッド環境下では変数の排他制御とコピーオンライトを同時に正常に行えない可能性があります。これと似たようなものとしてはJavaダブルチェックロッキングの問題があります。