Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在一个CPU上运行Java线程_Java_.net_Windows_Multithreading_Parallel Processing - Fatal编程技术网

在一个CPU上运行Java线程

在一个CPU上运行Java线程,java,.net,windows,multithreading,parallel-processing,Java,.net,Windows,Multithreading,Parallel Processing,我们有一个JAVA多线程应用程序,它有多个线程并行运行。现在我们想在一个内核上运行所有这些线程。当前应用程序运行在具有多个内核的系统上 我们知道在.Net Framework中有一种技术可以用来设置进程关联性 但我们不想依赖.Net Framework,因为我们的应用程序是用java构建的 我们是否使用Bat文件设置进程关联,并通过Bat文件运行应用程序可执行jar文件 目前,我们的应用程序正在Windows XP上运行。因此,我们需要一个能够在XP平台上正常工作的解决方案。编辑: 有可能:看到

我们有一个JAVA多线程应用程序,它有多个线程并行运行。现在我们想在一个内核上运行所有这些线程。当前应用程序运行在具有多个内核的系统上

我们知道在.Net Framework中有一种技术可以用来设置进程关联性

但我们不想依赖.Net Framework,因为我们的应用程序是用java构建的

我们是否使用Bat文件设置进程关联,并通过Bat文件运行应用程序可执行jar文件


目前,我们的应用程序正在Windows XP上运行。因此,我们需要一个能够在XP平台上正常工作的解决方案。

编辑:

有可能:看到了吗



纯Java不支持在特定处理器上运行线程。检查上面链接的SO问题。

编辑:

有可能:看到了吗



纯Java不支持在特定处理器上运行线程。检查上面链接的SO问题。

纯Java无法完成此操作。但在某些版本的Windows上,您可以通过操作系统实用程序来实现这一点;看见您可以通过JNI调用本机库来实现这一点

在纯Java中无法做到这一点。但在某些版本的Windows上,您可以通过操作系统实用程序来实现这一点;看见您可以通过JNI调用本机库来实现这一点

就个人而言,我不认为不能在纯Java中设置这一点是一件坏事,对于我来说,应用程序的运行方式在很大程度上取决于操作系统,因此特定于操作系统的解决方案不是坏事

您可以使用该实用程序设置亲缘关系:

psexec -a 1 java -jar myapplication.jar
将指示java创建的所有线程将在最低的CPU上运行


这一行将是你的.BAT文件…

就个人而言,我不认为不能在纯Java中设置这一事实是一件坏事,对我来说,应用程序的运行方式在很大程度上取决于操作系统,因此特定于操作系统的解决方案并不是一件坏事

您可以使用该实用程序设置亲缘关系:

psexec -a 1 java -jar myapplication.jar
将指示java创建的所有线程将在最低的CPU上运行


这一行将是您的.BAT文件…

可能重复:检查Peter Lawrey的项目。可能重复:检查Peter Lawrey的项目。@ThomasJungblut:谢谢。这允许您将关键线程限制/分配给特定的核心或核心上的CPU,但它不会重新分配JVM线程,例如GC线程。@ThomasJungblut:谢谢。这允许您将关键线程限制/分配给特定的内核或内核上的CPU,但它不会重新分配JVM线程,例如,再次为Psexec分配GC threads.beny23。我们需要.net framework来运行psecxec.exe文件。再次为Psexec分配.net framework来运行psecxec.exe文件