ア |
|
開始からの処理は“処理1→処理2”と行われるが、処理2(右)側は戻った上の二重線で同期待ちをするが、処理1(左)側はここに来ないので、処理2側は一番上の二重線で同期待ちで止まってしまう。また、処理1側は真ん中の二重線で同期待ちで止まってしまう。
処理としては“開始→処理1→処理2→処理1(デッドロック)”である。 |
イ |
|
開始のあと処理は“処理1→処理2”と行われ、その後も処理2(右)側は真ん中の二重線で処理1(左)側を待ち、処理1側は下の二重線で処理2側を待つので、処理としては“開始→処理1→処理2→処理1→処理2→…→処理1→処理2”になる。 |
ウ |
|
開始して上の二重線で同期した後、処理1が行われ、処理2側は下の二重線で処理1側を待つ。処理1を行って下の二重線に達し同期すると、処理1と処理2が行われる。
このとき、処理1と処理2を行う順序としてどちらが先に行われるかの保証がないので、処理1と処理2が交互に行われるかわからない。 |
エ |
|
開始して上の二重線で同期した後、処理1と処理2がどちらが行われるかわからない。処理1と処理2が行われた後。下の二重線で同期を行うが、その後も戻った先でも、処理1と処理2がどちらが行われるかわからない。 |