在Eclipse中使用Java VM的本机线程

时间:2009-07-13 09:05:54

标签: java multithreading native

我想运行一个使用Thread类的Java程序,这样每个Thread.run()都会运行一个正确的内核线程。有没有办法通过将一些命令行参数传递给Java VM来实现这一点?我在Windows机器上使用Java 1.5 SDK(和jre1.5.0_18)运行Eclipse。我尝试使用-XX:+ UseBoundThreads,但是任务管理器似乎在同一个核心上运行两个线程(我使用的是双核机器)(另一个核心是空闲的)。

感谢。

4 个答案:

答案 0 :(得分:6)

  

我想运行一个Java程序   使用Thread类这样的   每个Thread.run()都会导致运行一个   适当的内核线程。

如果你调用Thread.run(),你根本就不会创建单独的线程,而是在主线程中按顺序执行所有操作。你要做的就是调用Thread.start(),这将创建一个新的线程并让它执行Thread.run()

答案 1 :(得分:2)

Windows JVM始终使用本机线程。但是,由内核决定运行每个线程的核心。绝对不能保证在两个内核之间共享启动两个线程。

顺便说一下,我认为UseBoundThreads选项只是solaris,但我对此并不太确定。

答案 2 :(得分:1)

您可以使用jvisualvm附加以查看正在运行的线程以及它们使用的CPU数量。

答案 3 :(得分:0)

谢谢大家......虽然我不知道正确的答案,但目前,eclipse中的Java 1.6给我的性能几乎是我的双核的两倍,我所看到的代码库...还有,jvisualvm作为个人资料工作得很好..谢谢!