ホーム > Java言語で学ぶデザインパターン入門 > ギコ猫とデザインパターン > ギコ猫とGuarded Suspensionパターン | 検索 | 更新情報 |
『Java言語で学ぶデザインパターン入門 マルチスレッド編』 |
|
∧_∧ カタカタ /‾‾‾‾‾‾‾‾‾‾‾‾
( ) ∧ ∧ < ifでガード条件をチェックするのはまずいです…と。
( ) (,,゜Д゜) \____________
‾‾‾‾‾ (つ_つ____
‾‾‾日∇‾\|ThinkPad|\
‾ ========= \
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
| ほう、Guarded Suspensionパターンですか?
\
‾‾‾|/‾‾‾‾‾‾‾‾‾‾‾‾
∧_∧ /‾‾‾‾‾‾‾‾‾‾‾‾
( ・∀・) ∧ ∧ < な、なんですか?あなた・・・
( ⊃ ) (゜Д゜;) \____________
‾‾‾‾‾ (つ_つ____
‾‾‾日∇‾\|ThinkPad|\
‾ ========= \
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
| オブジェクトが適切な状態になっているときのみ処理する…
\
‾‾‾|/‾‾‾‾‾‾‾‾‾‾‾‾
∧_∧ /‾‾‾‾‾‾‾‾‾‾‾‾
( ・∀・) ∧ ∧ < そうそう。whileでガード条件をチェックするんですよね…
( ) (;゜Д゜) \____________
‾‾‾‾‾ (つ_つ____
‾‾‾日∇‾\|ThinkPad|\
‾ ========= \
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
| ガード条件が満たされるまでガンガンCPU時間を使え、と…
\
‾‾‾|/‾‾‾‾‾‾‾‾‾‾‾‾
∧_∧ /‾‾‾‾‾‾‾‾‾‾‾‾
( ・∀・) ∧ ∧ < notifyされるまでwaitしてるんですってば!!
( ⊃ ) (゜Д゜;) \____________
‾‾‾‾‾ (つ_つ____
‾‾‾日∇‾\|ThinkPad|\
‾ ========= \
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
※アスキーアートは2ch.netからお借りしました。
まず、オブジェクトが適切な状態か、ガード条件をチェックします。
ちゅぅ〜
∧ ∧ ∧∧
イヤン (゜ー゜*) (゜ε゜ ,,)
ノ つつ | \
〜(_OO ⊂UUO)〜
ガード条件を満たさない場合、スレッドはwaitします。
ちぇっ・・・
∧ ∧ ∧∧
. (*゜ー゜) (,, ゜Д゜)
ノ .| | \
〜(_UU ⊂UUO)〜
ガード条件が変化したら、wait set中のスレッドにnotifyAllします。
チュ♪
∧∧ ∧∧
( *^ 3(; ゜Д゜)
ノ .| | \
〜(_UU ⊂UUO)〜
notifyAllされたスレッドはwait setから出てきます。
∧ ∧ ∧∧ にゃはは♪
(*゜ー゜) (Д^ *)
ノ つと | \
〜(_OO ⊂UUO)〜
けれど、ガード条件は再度チェックしなければなりません。
ちゅぅ〜
∧ ∧ ∧∧
イヤン (゜ー゜*) (゜ε゜ ,,)
ノ つつ | \
〜(_OO ⊂UUO)〜
※アスキーアートは2ch.netからお借りしました。