0

synchronized() { method() } 880 個のスレッドが同時に実行されているというパフォーマンスの問題に遭遇しました。これにより、重大なパフォーマンスの問題が発生しました。

で待機しているスレッドに制限がある可能性はありsynchronized()ますか? 制限はどこで取得できますか?

もう 1 つの問題は、 に何を入れるのが最適かということですsynchronized( ? )。その変数にアクセスするクラスが異なるため、synchronized(this).

4

1 に答える 1

2

同期で何かを制限する方法はありません。高度な同時実行構造については、確認する必要がありますhttp://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html .

Synchronized( ? ) の中に入れるもの、つまり何をロックするかについては、実現したいロック動作によって異なります。すべての異なるクラスからアクセスできるグローバル (たとえばpublic static Object LOCK = new Object(); ) があり、それを同期すると、すべてのクラスがそのグローバルをロックします。

同期に関する Java チュートリアルをご覧ください。

于 2010-01-06T21:36:02.290 に答える