相关疑难解决方法(0)

lock对同步和使用它作为锁有什么区别?

我知道同步方法和同步块之间的区别,但我不确定同步块部分.

假设我有这个代码

class Test {
  private int x=0;
  private Object lockObject = new Object();

  public void incBlock() {
    synchronized(lockObject) {
      x++;
    }
    System.out.println("x="+x);
  }

  public void incThis() {  // same as synchronized method
    synchronized(this) {
      x++;
    }
    System.out.println("x="+x);
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,使用lockObject和使用它作为锁有什么区别?对我来说似乎是一样的..

当您决定使用synchronized块时,如何确定哪个对象是锁?

java concurrency locking synchronized synchronized-block

47
推荐指数
3
解决办法
3万
查看次数