Java 处理器核流的多线程 - 目的

我正在写一个应用程序 java, 其中包括并行计算。
我的问题是我如何明确地分配细胞核的流量? 什么是编程逻辑为此?

有谁可以说使用课程 Executor? 谢
已邀请:

奔跑吧少年

赞同来自:

您无法分配核的流。

fork
http://www.infoq.com/news/2008/03/fork_join
地址完全相同的问题。 但是,自动 /它将专为多核处理器而设计。/.

你能做的就是安装它
http://www.java2s.com/Code/Jav ... y.htm
, 要设置线程的优先级,如果这是您想要实现的。

JNI 也许另一个出口目的地,但我认为这是一个胸围。 你可以看看 Java-Thread-Affinity 彼得洛瑞
https://github.com/OpenHFT/Java-Thread-Affinity
哪种用途 JNI /我没有使用它们/.

快网

赞同来自:

我认为这里的简单答案是这样的:你只是没有

你可以

.

江南孤鹜

赞同来自:

我不认为您可以轻松地明确分配核的流。 也许你可以使用母语说明,但我怀疑它可以完成。

如果你不做一些特殊测试,

你真的不需要

. 线程 Java 由自己的流支持,如果 O.S. 相当现代,然后他的 kernel 将动态分配 /和重新分别/ 以这种方式,核溪流肯定比你的更好 /希望/ 执行负载平衡。

运行执行长期计算的多个线程,然后查看从任务管理器使用处理器。 您会看到使用许多核心。

江南孤鹜

赞同来自:

你不能。
http://architects.dzone.com/ne ... -java
. JVM 委托它 OS, 这将为您处理这个问题。

帅驴

赞同来自:

OS 管理在哪些核心处理流程。 您需要将Streams分配给一个内核 OS.

例如。 在 windows 打开任务管理器,转到“进程”选项卡并右键单击 java 进程...然后将它们分配给特定内核。

这是你能得到的最好的东西。

您可以根据备份分配流优先级
有了你的要求

知食

赞同来自:

查看项目 Java
https://github.com/OpenHFT/Java-Thread-Affinity
.

城堡 CPU


try /AffinityLock al = AffinityLock.acquireLock/// {
// do some work while locked to a CPU.
}


糖果城堡

:


try /AffinityLock al = AffinityLock.acquireCore/// {
// do some work while locked to a CPU.
}

风见雨下

赞同来自:

如前所述, JVM 不允许你。 但首先,你必须问自己为什么你考虑约会核的溪流。 这可能不是你想要做的。

班级 Executor 用于计划中等大小的计算 "grains" 没有开销的成本来创造太多的流。 您还可以尝试使用并行分支进行更细微的规划,这是代码的一些示例:
http://www.ateji.com/px/codesamples.html

要回复问题请先登录注册