-3

synchronizeJavaのメソッドとブロックのどちらが効率的か教えてください。

これについて考えてみるとsynchronize、何かを実行するとパフォーマンスに影響を与えるので、ブロックでの同期はメソッドでの同期よりもコードの使用量が少ないため優先されると思います-これは常に当てはまりますか?

4

1 に答える 1

4

メソッドを同期すると、メソッド全体が同期されるため、一度に 1 つのスレッドだけがそのメソッドを実行できます。そのメソッド内でコード ブロックを同期すると、複数のスレッドがメソッドを同時に実行できますが、一度に 1 つのスレッドしか同期ブロックに入ることができません。

このことから、必要な最小限のコード ブロックで同期することが最も効率的な方法であると結論付けることができます。ただし、メソッドとコード ブロックの同期の実際の違いは、メソッドと、同期ブロックから除外されるコードによって異なります。

于 2013-04-04T10:24:30.317 に答える