回答編集履歴
1
補足
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
ヒープ領域を複数のスレッドで同時アクセスする場合、多少は起きにくいですが、複数のスレッドでポインタ経由で同じヒープ上のオブジェクトを共有することも油断すると発生しますので、やはり危険です。(C++ではないですが、C#のGUIオブジェクトが該当します。)
|
21
|
+
ヒープ領域を複数のスレッドで同時アクセスする場合、多少は起きにくいですが、複数のスレッドでポインタ経由で同じヒープ上のオブジェクトを共有することも油断すると発生しますので、やはり危険です。(例えば、C++ではないですが、C#のGUIオブジェクトが該当します。)
|
22
22
|
|
23
23
|
|
24
24
|
|
@@ -43,3 +43,9 @@
|
|
43
43
|
|
44
44
|
|
45
45
|
基本的にはその通りです。しかし、ロック機構は[デッドロック](https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%83%E3%83%89%E3%83%AD%E3%83%83%E3%82%AF)のリスクがありますので、必ずしも安全になるわけではありません。ロックする時はデッドロックしないことに要注意です。経験的にはスレッドを終了させる際に発生しやすいです。(呼び出し側がスレッド終了を待ち、スレッドは呼び出し側スレッドの応答を待っているなど。)
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
とはいえ、同じメモリへの書き込みと読み出しがあるなら、通常は比較的安易にMutexでロックしてます。
|
50
|
+
|
51
|
+
そして、複数のロックを待つ処理がないことをチェックしています。
|