Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有人可以告诉我synchronize对Java中的方法或块更有效吗?
synchronize
想想这个,当你synchronize做某事时它会影响性能,所以我会假设在一个块上同步优先于在一个方法上同步,因为它占用更少的代码 - 总是这样吗?
如果你同步方法,那么整个方法都是同步的,因此一次只有一个线程可以执行该方法。如果您在该方法中同步代码块,则可以有多个线程同时执行该方法,但一次只能有一个线程进入同步块。
由此我们可以得出结论,在所需的最小代码块上进行同步是最有效的方法。然而,同步方法与代码块之间的实际差异实际上取决于方法以及同步块中遗漏了哪些代码。