在Java的临界区中,我应该同步什么?

27 浏览
0 Comments

在Java的临界区中,我应该同步什么?

在Java中,代码中声明临界区的惯用方式如下:

private void doSomething() {
  // 线程安全的代码
  synchronized(this) {
    // 线程不安全的代码
  }
  // 线程安全的代码
}

几乎所有的代码块都会对this进行同步,但是这样做有特定的原因吗?还有其他可能性吗?有没有关于要对哪个对象进行同步的最佳实践(例如私有实例的Object)?

0