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
的工作原理是发出 monitorenter
和 monitorexit
的字节码,它们是给 JVM 的指令,用于分别锁定和解锁隐藏的监视器。
【讨论】:
是的,但我也需要其他并发构造的答案,而不仅仅是线程。 @CandyChiu 我为synchronized
添加了一个小描述。你能说出你感兴趣的其他结构吗?
这还不够。我想知道细节,例如他们是使用内核对象(互斥体)还是用户模式对象(关键区域)。我正在挖掘openjdk的源代码。我最终会谈到一些事情。我希望有人已经完成了挖掘工作并将我指向这些文件。
@CandyChiu 我认为您应该在问题中包含这些详细信息,因此如果有人可以在这些特定方面为您提供帮助,则更有可能。以上是关于Java 并发是如何为 Windows 实现的? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章