2016-03-24 1 views
1

ロック分割の戦略であれば、ロック操作でputが保証されています。ArrayBlockingQueueには、notFullとnotEmptyという2つの条件があります。どのようにこれらの2つの状態を理解するには?それはロック分割の一種ですか?

+1

これらの2つの条件はどこで確認できますか?どんな状況で?あなたの質問は明確ではありません。 – RealSkeptic

+0

これらはロックではありませんが、信号は – weston

答えて

1

だから、彼らはロックが、信号(Conditions)ではありませんsource code

の話をしています。

スレッドが値を入力するスレッドが、空きスペースを置くのを待つものは、notFullです。

値を読み取っているスレッドが、アイテムが追加されるのを待つものは、notEmptyです。

+0

ありがとう!私はAbstractQueuedSynchronizerのConditionの実装を見ます。 – zhongwei

+0

条件をセマフォの一種として見ることはできますか? – zhongwei

+0

彼らは似ています。これを読んでくださいhttp://stackoverflow.com/a/12780328/360211 – weston

関連する問題