スレッドと同期のしくみについて混乱します。私はこのように記述されているサンプル問題を処理中です:スレッドと同期
2つのスレッドがあります:PとQ変数は、両方のスレッドで共有されます。 一方のスレッドのカウンタの変更は他方のスレッドから見えます。 インクリメント命令は、変数に1を加算して新しい値を格納します。
1 global integer counter = 0
2
3 thread P()
4 incr(counter)
5 print counter
6 end
7
8 thread Q()
9 print counter
10 incr(counter)
11 print counter
12 incr(counter)
13 end
カウンタの値を出力する3つのprint文があります。以下の出力 のリストでは、指定された出力が可能かどうかを示し、そうであれば に、 が出力につながるPおよびQのインターリーブ命令(スレッドおよびライン番号を使用)を与えます。
この例では出力122が可能ですか?これはP4, Q9, Q10, P5, Q11, Q12
によって生成することができる。私はこの仕組みの周りに頭を包むことはできません。