繁体   English   中英

Sun JVM如何将Java线程映射到Windows线程?

[英]How does the Sun JVM map Java threads to Windows threads?

我的应用程序使用大量Java线程。 我正在寻找一个可靠的理解JVM(版本5和6)如何将Java线程映射到底层Windows线程。 我知道有一个用于映射到Solaris线程的文档,但不是Windows。

为什么Sun不发布此信息?

我想知道是否存在1:1映射,或者它是否因JVM,-server选项,工作负载等而异。

我知道我不应该“关心”,我应该正确编写同步代码,但我继承了大量的代码......

另外,有没有人知道如何为Windows线程命名?

没有适合您的文档,但是从任务管理器的“线程”列中,您可以非常可靠地猜测它将1:1映射到本机线程(您需要先在任务管理器中启用“线程”列)。

哦,差点忘了,你可以在这里下载jdk src,看看你自己。

映射是依赖于平台的,但是我发现vm的平台线程之间有一个有趣的比较 (虽然可能有点旧)。 底线是:你不需要知道。 您可能更感兴趣的是了解绿色线程 (如果您还不知道)。

至于命名问题: 构造函数是否允许您命名线程? 或者你的意思是命名他们并在一些Windows线程浏览器上查看他们的名字?

JVM规范在这方面没有严格说明。 它留给JVM实现者将Java theads映射到平台theads(Windows,Linux等)。 另外很难相信Java线程和OS线程之间会有一对一的映射。

如何命名Win32线程

不幸的是,这似乎是不可能的,或者至少在Windows JVM中很难做到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM