我需要通过并行计算这个方程D =(a-b)+(c-d)来解释连接函数。 假设我有一个方程D =(a-b)+(c-d)。我怎么能并行使用三线程计算(a-b),一个计算(c-d)和主线程来显示结果。我需要证明主要是在这两个线程死亡之前不显示结果。用多线程java并行求和
0
A
回答
1
正如Javadoc所说,join()
等你只有给定的线程死掉 - 因此,它是一个语句,直到线程完成计算。使用您的公式:
// Choose a, b, c, and d.
int a = 0;
int b = 1;
int c = 2;
int d = 3;
// Set up an array for the intermediate results.
int[] results = new int[2];
// Create two threads writing the intermediate results.
Thread t0 = new Thread(() -> results[0] = a - b);
Thread t1 = new Thread(() -> results[1] = c - d);
// Start both threads.
t0.start();
t1.start();
// Let the main thread wait until both threads are dead.
try {
t0.join();
t1.join();
} catch (InterruptedException e) { /* NOP */ }
// Sum up the intermediate results and print it.
System.out.println(results[0] + results[1]);
使用一个简单的数组来检索线程的结果是有点腥(退房this question)。但是,这个例子就足够了。
1
我创建两个线程,他们都瘫痪了:
他们T1和T2;
- 这点t1计算(AB)
- T2的计算(CD)
这里主要()计算总和:
这段代码可以帮助你:
class SumThread extends Thread implements Runnable {
public SumThread(int a, int b) {
this.a = a;
this.b = b;
sum = 0;
}
public void run() {
sum=(a-b);
}
public int getSum() {
return sum;
}
private int a, b, sum;
}
public class Sum2 {
public static void main(String args[]) {
SumThread t1 = new SumThread(1, 2);
SumThread t2 = new SumThread(3, 4);
t1.start();
t2.start();
try {
t1.join();
t2.join();
} catch(InterruptedException e) {
System.out.println("Interrupted");
}
System.out.printf("The sum %d \n", t1.getSum()+t2.getSum());
}
}
相关问题
- 1. Java的多线程,让线程并行
- 2. Java并行线程
- 3. 并行线程和用C
- 4. HTTPS请求和多线程
- 5. java编程和java单线程多线程问题(单线程与多线程)
- 6. Java中的命令行(和多线程)
- 7. Java中的并行线程
- 8. 并行线程和并发
- 9. Python多线程使用请求和BeautifulSoup
- 10. Java - 多线程和同步
- 11. java多线程和对象
- 12. Java多线程和文件
- 13. Java打印和多线程
- 14. 使用Java的htmlunit.WebClient和多个代理进行多线程
- 15. Java - 平衡ThreadPoolExecutor公平地给线程并行请求
- 16. 线程并行于其他进程java
- 17. Java单线程CPU使用和多线程CPU使用
- 18. JNI和并行线程
- 19. 多线程请求
- 20. Java线程(多线程)
- 21. Java多线程
- 22. Java多线程和异步Http请求处理
- 23. 多线程(openMP) - 多少个并行线程
- 24. 关于多线程的java多线程
- 25. java中有多线程的多线程
- 26. Python中数组的多线程求和
- 27. Java线程任务的并发执行
- 28. 线程并行
- 29. Java:通过多线程并行化快速排序
- 30. 多线程/并行for循环JAVA的每个项目
创建子类的三个对象并调用run()方法可能有效@BetterEnglish –