java - java中的synchronized关键字是如何实现的?

标签 java synchronization system-calls

我正在阅读操作系统,我遇到了进程间通信的几个问题。这些可以通过使用 monitor 来解决。 java 通过 synchronized 关键字提供的概念。

我想知道synchronized关键字是如何实现的?我试图查看源代码,但找不到。 synchronized 是否正在使用像 down up 这样的系统调用(基本上是信号量使用的)来监视锁?

JVM 在这个过程中有帮助吗?

我是 Java 的新手,在我进入 Java 中的线程概念之前,我想知道它是如何工作的。

提前致谢。

最佳答案

synchronized 是如何实现的还没有定义,只有它是如何工作的。

在许多 JVM 中,它所做的优化其行为是相当复杂的(例如,它试图避免进行系统调用,因为这些调用相对较慢)例如,如果 JIT 确定了这一点,它可以使用 synchronized 关键字组合或消除锁定可以做到。

关于java - java中的synchronized关键字是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12365127/

相关文章:

java - 如何在 Android 中使用 java 在点击时放大/缩小 imageView?

java - 该算法的基本情况是什么?

java - 同步线程上的 NullPointerException

linux-kernel - is system(const char *command) 导致 cpu sys 100%

c - 如何从系统调用号获取 Linux 系统调用名称?

Java - 按文本索引的列表

java - 如何使用java生成s3风格的访问/ key

javascript - 如何在for循环中顺序调用JavaScript函数?

java - 在synchronized block 中使用Object.class锁有什么影响?

compilation - 尝试在minix3中进行编译