- 775 名前:はちみつ餃子 mailto:sage [2021/07/10(土) 09:56:52.21 ID:11oc3t46.net]
- >>730
結論から言うとロックは必要。 同一のメモリに対するアクセスの少なくとも一方が書き込みである場合には衝突すると定義されている。 https://timsong-cpp.github.io/cppwp/n3337/intro.multithread#4 その場合にはデータ競合が発生する。 https://timsong-cpp.github.io/cppwp/n3337/intro.multithread#21 同時に起こりうるアクセスの内でひとつでも書き込みが存在したらそれはデータ競合の可能性があるってこと。 ミューテックスはミューテックスの所有権を取り合うことで競合を阻止する仕組み。 ロックというのは「ミューテックスをロックする (ロックしている間は自分がミューテックスの所有権を持っている)」 ということであって、対象となるデータそのもののアクセスを直接的に制御してるわけじゃないので、 書き込み側でロックするだけでは意味がない。
|

|