【发布时间】:2018-06-20 14:33:38
【问题描述】:
doThis方法中两个同步块的区别:
什么时候应该使用?
public class AClass {
private final Object lock = new Object();
public void doThis(){
synchronized(lock){
//do stuff
}
}
}
和
public class BClass {
public void doThis(){
synchronized(this){
//do stuff
}
}
}
什么时候应该使用一个而不是另一个?
【问题讨论】:
-
第一个例子锁定
Object,第二个例子锁定BClass。就是这样。您的第二个问题在这里得到更好的解释:stackoverflow.com/questions/442564/… -
您可以选择要用作锁的对象。您刚刚发布了 2 个使用不同对象的代码 sn-ps。这就是区别。
标签: java syntax synchronization synchronized