在Java中,我如何创建线程以便每个线程专门在一个核心中运行?

Jac*_*ale 4 java cpu multithreading

可能重复:
Java线程关联

我有一个服务器,它有一个16核CPU.

在Java中,我需要创建一些线程(线程数小于16).每个线程需要运行一些操作,例如,处理事件队列.

如何创建这些线程以确保每个线程永远分配给一个核心?我的意思是我不希望操作系统为一个线程交换核心.我只希望一个线程专门在固定核心上运行.

我能这样做吗?


我想要的原因是

我在同一台服务器上处理一些后台任务(计算密集型)和一些面向用户的任务.我不希望用户方面产生任何负面影响.例如,如果我的计算任务被分配到16个核心,那么为用户端运行的线程肯定会受到负面影响,对吧?

bez*_*max 5

你不能.JVM虚拟化所有硬件,因此您无法执行此类操作.

可能会有一些"技巧"可以用于某些特定的体系结构和某些特定的JVM,但它们都是hackish和不可靠的.