2012-03-16 13 views
1

実行可能なタスクをキューに入れ、実行可能なタスクが毎回同じオブジェクトである共通のスレッドプールがある場合。複数のスレッドが同じオブジェクト上で同期を待っているときのイベントの順序

ロックが同期化されたコードブロック(実行可能タスク内)に到達するとどうなりますか? 5つのスレッドが同じロックで待機しているとしますか?

ロックが解除されると、同期化されたブロックが実行待ちのキュー行になり、新しいスレッドがキューに参加するか、最初にブロックを取得した人は誰ですか?

キュー行がない場合は、順序付けされた実行が必要な場合は、どのような方法で実行するのが最適ですか?

答えて

1

同期ブロックには定義された順序がありません。 java.util.concurrent.locks.ReentrantLockを「公平」ロックで使用すると、同期ブロックと同じ効果を得ることができますが、順序保証があります。

+0

クールです。ヘッドアップをありがとう。ここで私は同じ質問の他の人のために見つけたより多くの情報です。 http://javabeanz.wordpress.com/2007/07/12/using-reentrant-locks-for-thread-synchronization/ –

関連する問題