java - 执行线程核心数

标签 java multithreading parallel-processing multicore

在并行 Java 代码中,我们可以了解线程在哪个核心上执行吗?

假设我有 10 个线程和 4 个核心,是否可以在代码中了解哪个核心用于线程 1、线程 2、线程 3 等?

这不是一个关键问题,但我想知道是否可能。

最佳答案

In a parallel Java code can we learn which core a thread is executed on?

从 Java 内部来看,答案是否定的。有多种方法可以查看 Linux(也可能是其他 Unixen)中的进程列表,这些方法可以向您显示虚拟进程以及 CPU 关联性。然而,这是非常不可移植的,对于上下文切换的任务来说,它没有意义。

我在这里有一些关于 CPU 信息的更多详细信息,但它没有解决亲和性问题:Concurrency of posix threads in multiprocessor machine

关于java - 执行线程核心数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847103/

相关文章:

C# - 并行 For 循环 : Parallel. For(); - 它们如何处理在它们之外声明的变量?

haskell - 并行排序 IO 操作

java - 设计 : A Java Application with high throughput

java - Queue的并发版本需要异常

java - 如何使用Future<T>接口(interface)?

java - Clojure 的自定义访问器策略 `from-java`

c - 线程入口和线程启动之间的确切区别是什么?

java - 在我的 Java 程序中将字符打印到文件时,仅显示第一个字符,并且出现错误

javascript - 为什么 Java 中 ArrayList 中的第一个值总是返回 null?

java - 如何有条件地添加(或修改)ContextConfigLocation 到 web.xml?