任何人都可以通过一个例子告诉我同步方法优于synchronized块的优势吗?
Java中的synchronized方法和synchronized块之间有什么区别?
我一直在网上搜索答案,人们似乎对这一个如此不确定:-(
我的看法是两者之间没有区别,除了同步块可能在范围内更加局部化,因此锁定的时间会更短?
如果是静态方法上的Lock,那么Lock是什么?锁定类的含义是什么?
java multithreading synchronization synchronized synchronized-block
可能重复:
同步块与同步方法?
从对这个问题的公认答案:在Java关键部分中,应该同步什么? 我了解到
public synchronized void foo() {
// do something thread-safe
}
Run Code Online (Sandbox Code Playgroud)
和:
public void foo() {
synchronized (this) {
// do something thread-safe
}
}
Run Code Online (Sandbox Code Playgroud)
做完全一样的事情。但是在第一种情况下,我们仅使对象的一种方法同步,而在第二种情况下,使不可访问的Whole对象。那么,为什么这两个代码片段执行相同的操作?