有人可以告诉我,对于Java中的方法或块,synchronize
是否更有效?
考虑到这一点,当你synchronize
对某些事情影响性能时,我会假设同步一个块优先同步一个方法,因为它占用较少的代码 - 总是这样吗?
答案 0 :(得分:3)
如果同步方法,则整个方法是同步的,因此一次只有一个线程可以执行该方法。如果在该方法中同步代码块,则多个线程可以同时执行该方法,但一次只能有一个线程进入同步块。
由此我们可以得出结论,在所需的最小代码块上进行同步是最有效的方法。然而,同步方法与代码块之间的实际区别实际上取决于方法以及从同步块中省略了什么代码。