java - 私有(private)锁对象和内在锁

标签 java multithreading synchronization locks

什么时候更喜欢私有(private)锁对象来同步块(synchronized block)而不是内在锁(this)? 请引用两者的结果。

私有(private)锁对象:-

Object lock =new Object();  
synchronized(lock)
{  }

内在锁(this):-

synchronized(this)
{  }

最佳答案

使用显式lock对象可以允许不同的方法在不同的锁上同步并避免不必要的争用。它还使锁更加明确,并且可以更轻松地在代码中搜索使用锁的 block 。

但是,您可能也不想这样做!在 java.util.concurrent 中找到适当的类并使用它。 :)

关于java - 私有(private)锁对象和内在锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840594/

相关文章:

java - 如何实现两者独立通信的客户端服务器

Java 和 SSH : maintaining a connection

java - Postgres JDBC 驱动程序 `org.postgresql.ds.PGSimpleDataSource` 是线程安全的吗?

c++ - 两个或多个 std::threads 如何对同一个函数进行操作?

android - SyncAdapter 是否支持同步期间的上传和下载?

javascript - AngularJS 等待超时功能完成后再继续

java - java中的内部锁和监视器锁有什么区别?

java - 在自动化 Android 应用程序时,如何通过单击 appium 中的主页按钮导航到主屏幕?

java - 在 v2 map 上绘制不同颜色的折线

java - URLImageSource 在 Java 10 中失败,但在 Java 8 中失败