Java多线程

标签 java multithreading simd

我需要在java环境中对大量数据执行单个计算(求和和乘积)。我知道最好的解决方案是使用 SIMD 架构,例如 CUDA,但我没有能力拥有专用硬件。 您知道在单机上运行并利用多核的 map 缩减框架吗?

最佳答案

对于此类任务,通常建议使用 fork-join 框架,因为它会自动使用与核心数量一样多的线程,您可以在 Java 教程中阅读有关它的更多信息:http://docs.oracle.com/javase/tutorial/essential/concurrency/forkjoin.html

另一方面,如果您只是对数字进行求和和相乘,那么选择固定数量的线程(例如 4)可能会更简单,并让第一个线程对索引 0,4,8,.. 处的数字求和第二个在索引 1,5,9,... 第三个在 2,6,10,.. 等等

关于Java多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17389736/

相关文章:

multithreading - Go运行时会创建操作系统线程(M)吗?

x86 - 用AVX指令进行水平向量求和的最快方法

java - Gps android - 获取纬度和经度

java - Spring事务和 hibernate : lazy initialization

linux线程同步

java - 将对象传递给线程(在线程外访问对象)

c - 如何用256位AVX vector 对两个复数 double 平方?

c++ - 使用 SSE2 和 AVX2 编译库

java - 如何重置 Eclipse 源/排序成员设置?

java - 根据操作系统动态加载 jar