我正在阅读操作系统,我遇到了几个进程间通信问题。这些可以通过使用monitor概念来解决,这些概念是通过synchronized
关键字提供的。
我想知道synchronized
关键字是如何实现的?我试着查看源代码但我无法找到它。 synchronized
是否正在使用系统调用,例如down
up
(信号量基本上使用的信号量)来监控锁定?
JVM是否有助于此过程?
我是Java的新手,我希望在进入java中的线程概念之前知道事情是如何工作的。
提前致谢。
答案 0 :(得分:6)
未定义如何实现同步,仅定义它的工作方式。
在许多JVM中,优化其行为是非常复杂的(例如,它试图避免进行系统调用,因为它们相对较慢)例如,如果它确定了这个,JIT可以将synchronized锁定与synchronized关键字组合或消除可以做到。