我最近开始使用Java进行多线程编程,使用Java 在Linux线程的情况下,我知道内核调度它们(因为它们是被调度的单元实体),但是Java程序在我的系统(RHEL 6.1 )被实现为一个作为用户空间实例运行的程序。因此,如果内核没有意识到Java线程,那么在JVM中如何实现先占式多任务处理?如果JVM和内核相互作用在做这件事情的整个机制被赋予.Plz引用信息的可能来源Java线程是如何安排的?
回答
读Distinguish Java threads and OS threads? 正如我在评论Java线程说是普通的操作系统线程刚刚运行的JVM代码
这将是有帮助是的,我知道它但plz告诉我如何在此多线程环境中完成Java代码JVM解释器的解释 – Tanay 2012-03-29 14:43:39
除同步操作外,每个线程都将Java代码单独解释为如果它是唯一的线程。当一个新的线程被创建时,它会被告知要解释的java代码。 – 2012-04-05 15:31:26
jvm只是一个正常的过程,它从一个线程开始,可以产生尽可能多的线程。调度是在两个级别完成的 - 进程之间和进程内的线程之间。所有这一切都是由操作系统完成的(通过libs) - jvm只是挂钩了。谷歌posix线程的更多细节 - 这是什么暴露(API)的jvm。
这又有点进入细节: http://www.ibm.com/developerworks/java/library/j-rtj3/
线程在Java/JVM进程映射到本地线程,你可以看到这两个Java线程ID和线程的堆栈跟踪转储的本地线程ID。用你最喜欢的工具获取所有Java线程的线程堆栈:像CTRL + BREAK
- 命令行信号控制台(Windows)或按Ctrl + \ Linux的),其中Java程序运行
- 命令行工具(杀-QUIT或从JDK jstack)
- 在JDK和/或JMX等视觉VM从这样的线程转储的第一行
实施例提取物: ... TID = 0x0000002adaba9c00 NID = 0x754c ...
TID = Java线程ID
NID =本地ID(操作系统的线程ID)
使用操作系统的工具来了解更多的线程使用本地ID(它是在十六进制)。
里面你有ThreadMXBean的检索更多线程信息编程,如果你想在Java代码 http://docs.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
“,但Java程序是在JVM这在我的系统(RHEL 6.1)是 实现为程序运行所运行的用户空间instance.So, 没有内核意识到了java线程的......”
这种说法是不正确的所有现代的JVM使用本地线程。我认为这是自Java 1.2以来的默认值。 由JVM实现的本地线程意味着每次线程在Java代码中实例化/运行线程时,JVM都会要求OS创建该线程。由于这些是本地线程,因此内核知道它们并相应地对待它们。此外,Linux支持/实现POSIX线程,因此在基于Linux的系统上,您将获得适用于Java应用程序线程的pthread行为
- 1. 如何安排Java程序的执行?
- 2. java线程如何排序线程的执行顺序
- 3. 部分线程安全是否使Java类线程安全?
- 4. Java Transport.send()是线程安全的吗?
- 5. 如何排序,并安排在Java组线
- 6. 日程安排java程序
- 7. Java:线程安全的RandomAccessFile
- 8. 线程安全是如何在java中枚举?
- 9. Java线程getId()线程安全吗?
- 10. 在Java中,如何确保我的Web应用程序是线程安全的?
- 11. 如何查看组织日程安排的日程安排?
- 12. 查找安装的PHP是线程安全的还是非线程安全的?
- 13. java单线程安全
- 14. Java线程安全递归
- 15. java数组线程安全
- 16. Java XPathFactory线程安全
- 17. 我该如何安排黑莓中的特定线程
- 18. 如何安排流程?
- 19. 如何安排子流程?
- 20. 是RSA_sign线程安全的
- 21. 是AmazonSimpleNotificationServiceClient线程安全的?
- 22. 是res_query线程安全的?
- 23. 是Magento线程安全的?
- 24. 是newKieSession线程安全的?
- 25. 我如何使用Jython线程,因为它们是Java线程?
- 26. 线程是否表示线程安全?
- 27. 编排是单线程?
- 28. 的Java:线程安全类的实例
- 29. 如何测试ConcurrentHashMap是否是truley线程安全的?
- 30. 在辅助线程上安排NSStream
不确定,但每个Java线程都由专用的OS线程处理。因此,您的操作系统不需要知道JVM等。 – 2012-03-27 13:54:37