设置Java多线程关联

设置Java多线程关联,java,multithreading,affinity,Java,Multithreading,Affinity,我将IntelliJ与ForkJoin框架一起使用,并尝试对我的代码的两个版本进行基准测试。一个是使用forkjoin,一个是顺序连接。不幸的是,JDK/Windows似乎在一定程度上自动在4个内核之间分配顺序。有没有一种方法可以给出一个编译器指令来强制顺序版本只与一个内核关联?在windows中,您可以使用任务管理器来执行此操作,找到java.exe进程并右键单击(每次重新启动时都需要重设此项) 或者,您需要进行本机调用以在windows中设置亲缘关系。您可以使用任务管理器查找java.exe

我将IntelliJ与ForkJoin框架一起使用,并尝试对我的代码的两个版本进行基准测试。一个是使用forkjoin,一个是顺序连接。不幸的是,JDK/Windows似乎在一定程度上自动在4个内核之间分配顺序。有没有一种方法可以给出一个编译器指令来强制顺序版本只与一个内核关联?

在windows中,您可以使用任务管理器来执行此操作,找到java.exe进程并右键单击(每次重新启动时都需要重设此项)


或者,您需要进行本机调用以在windows中设置亲缘关系。您可以使用任务管理器查找java.exe进程并右键单击(每次重新启动它时,您都需要重置它)


或者,您需要进行本机调用,以设置可能的井的相似性

重复,即使您的代码本身是纯顺序的,您真的想人为地将JVM的必要后台线程(主要用于GC,但也包括终结器等)限制为仅一个线程吗?我看不出这有什么用。为什么不按常规计算执行任务X所需的时间?即使代码本身完全是顺序的,也可能会出现重复?您真的想人为地将JVM所需的后台线程(主要用于GC,但也包括终结器等)限制为仅一个线程吗?我看不出这有什么用。为什么不按常规计算执行任务X所需的时间?