コピーオンライト

提供: MonoBook
ナビゲーションに移動 検索に移動

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

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

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