同步功能如何在Java中工作?


问题内容

自从我开始用Java编程以来,我一直在想(大约一两年)。在C语言中,我们必须知道不同的方法才能正确避免线程之间的死锁,因此在同步方法之间有更多选择。

那么Java呢?当我们同步时,如何避免将线程置于死锁状态?它在内部如何运作?是否可以避免死锁,因为我们在比C(或C
++)更高的级别上进行了同步?关于Java中的死锁和同步的任何文档吗?


问题答案:

在后台,它使用两个操作码monitorentermonitorexit字节码级别,它们在JVM全局级别上获取/释放对象引用上的锁定。我强烈建议您阅读Java虚拟机如何执行线程同步