Java 并发是如何为 Windows 实现的? [关闭]

Posted

技术标签:

【中文标题】Java 并发是如何为 Windows 实现的? [关闭]【英文标题】:How is Java concurrency implemented for Windows? [closed] 【发布时间】:2013-02-01 14:08:33 【问题描述】:

有谁知道如何为 Windows 实现 Java 并发?它是否调用本机 Windows API?我从 OpenJDK 下载了源代码。到目前为止,我还没有找到任何与并发相关的文件。谢谢。

【问题讨论】:

tutorialspoint.com/java/java_multithreading.htm ? @TheBlastOne 问题是关于实现,而不是API。 最终还是要调用原生的windows api,Thread.start是一个原生方法。问题是在哪里可以找到调用windows代码的代码? This 应该让你开始(寻找 StartThread)-Windows specific files。 【参考方案1】:

您可能指的是整个 Java 运行时历史中使用的两种线程模型:绿色线程模型(用户级线程,由 JVM 管理)和非绿色线程模型(本机线程,由操作系统管理)。

正如here 的回答,在任何流行平台(Windows、Linux、Solaris)上都不再使用(并且很长时间没有使用)绿色线程。因此,为了回答您的问题,Java 线程是实现级别的真正线程

synchronized 关键字的功能基于每个对象都与“隐藏”监视器相关联的事实。因此,synchronized 的工作原理是发出 monitorentermonitorexit 的字节码,它们是给 JVM 的指令,用于分别锁定和解锁隐藏的监视器。

【讨论】:

是的,但我也需要其他并发构造的答​​案,而不仅仅是线程。 @CandyChiu 我为synchronized 添加了一个小描述。你能说出你感兴趣的其他结构吗? 这还不够。我想知道细节,例如他们是使用内核对象(互斥体)还是用户模式对象(关键区域)。我正在挖掘openjdk的源代码。我最终会谈到一些事情。我希望有人已经完成了挖掘工作并将我指向这些文件。 @CandyChiu 我认为您应该在问题中包含这些详细信息,因此如果有人可以在这些特定方面为您提供帮助,则更有可能。

以上是关于Java 并发是如何为 Windows 实现的? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis是如何为Dao接口创建实现类的

我是如何处理大并发量订单处理的 KafKa部署总结

java 怎样处理高并发

富国银行是如何为公有云转型做准备的

边缘计算网关是如何为企业创造价值的

历时3个月,我们是如何为一个开源项目集资300万美元的?