Java运行并行程序

标签 java multithreading

我有一个要求,我不确定是否可以通过使用线程来满足。我有两个预定义的 100*100 矩阵,我想执行它们的乘法。我想要的是,不是简单的乘法,而是我想把它分成三个独立的程序,第一个程序将对前 33 行进行乘法,第二个程序将对 33 行到 64 行进行乘法,第三个程序将对第 64 行进行乘法到 100 行. 现在我想并行运行这些程序并收集它们的结果(即行的乘法),然后将这三个不同的结果连接到一个矩阵中。 现在,我已经开发了三个这样的程序或类,但我无法找到任何方法来并行运行它们。 在线程中,我读到我们无法确定哪个线程先执行,哪个线程稍后执行。

任何人都可以告诉我可以使用哪种技术来解决我的问题吗?

我会非常感谢你们。

最佳答案

Java 内置了这种东西。文档是 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Executors.html

创建每个对象,将其放入线程池,然后全部运行。

ExecutorService service = Executors.newFixedThreadPool(3);
service.submit(matrixMult1);
service.submit(matrixMult2); // the objects that do the work
service.submit(matrixMult3);

service.shutdown();
service.awaitTermination(1, TimeUnit.HOURS);

这是基本大纲。

关于Java运行并行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787293/

相关文章:

java - 子类访问静态成员的规则是什么?

java - 如何对所有映射使用相同的 IdentifierGenerator 实例

multithreading - 我怎样才能让这个时间关键的过程优先于其他线程?

c++ - 段错误多线程 C++ 11

java - 如何使用 Android 获得最准确的时间?

java - 如何扩展 PrintWriter?

c++ - 为什么 C++ 中的 THREADS 在执行时给出不同的输出?

java - 如果将单线程调度到多个内核对内存可见性的影响

java - 在不知道 Java 中的基类的情况下调用模板参数上的方法

java - 如何为并发类编写正确性测试?(2个 Action 不是并行执行的)