2013-04-04 78 views
-4

有人可以告诉我它是否更有效率到synchronize在Java中的方法或块?什么是更有效率 - 在方法或块上的同步

考虑到这一点,当你影响性能的东西,所以我会假设同步块优先于同步方法,因为它占用更少的代码 - 这总是这种情况?

+0

为什么所有的downvotes?说真的,我只是想知道一个问题的答案 - 将来我不会打扰 – maloney 2013-04-04 10:27:07

+1

+1的平衡。 – 2013-04-04 10:28:14

+0

@maloney我认为downvotes是没有做任何研究现有的问题/答案在这个网站上。 – 2013-04-04 10:31:55

回答

2

如果您同步该方法,那么整个方法是同步的,因此一次只有一个线程可以执行该方法。如果同步该方法中的代码块,则多个线程可以同时执行该方法,但一次只能有一个线程进入同步块。

由此我们可以得出结论:在尽可能小的代码块上进行同步是最有效的方法。然而,同步一个方法和一个代码块之间的实际区别实际上取决于该方法以及哪些代码被排除在同步块之外。

+1

OP没有要求定义。 – 2013-04-04 10:26:08

相关问题