java 多线程并行求和 之 join() 方法应用
2014-08-31 18:46
246 查看
现在 先看一个 继承Thread 类实现求和的java多线程并行程序如下:
运行结果如下:
![](http://img.blog.csdn.net/20140831183226062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFhfMTIzXzFfUko=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们可以看出线程
package com.xing.add; /** * * @author LiuYinxing * */ public class And extends Thread{ private long start; private long end; private long sum = 0; public And (long start, long end){ super(); this.start = start; this.end = end; } public void run(){ for (long i = start; i <= end; i+=2) sum += i; } public long sum(){ for (long i = start; i <= end; i++) sum += i; return sum; } public long getSum(){ return sum; } public static void main(String[] args) throws InterruptedException{ // TODO Auto-generated method stub And thread1 = new And(1, 1000000000); And thread2 = new And(2, 1000000000); long startTime = System.currentTimeMillis(); thread1.start(); thread2.start(); thread1.join(); thread2.join(); long endTime = System.currentTimeMillis(); System.out.println("并行结果 = " + (thread1.getSum() + thread2.getSum())); System.out.println("并行时间 = " + (endTime - startTime)); startTime = System.currentTimeMillis(); And serial = new And(1, 1000000000); long sum = serial.sum(); endTime = System.currentTimeMillis(); System.out.println("串行行结果 = " + sum); System.out.println("串行时间 = " + (endTime - startTime)); } }
运行结果如下:
我们可以看出线程
thread1.start(); thread2.start();在调用join()方法
thread1.join(); thread2.join();使其同时在多核上并行处理。由于其他的因素 加速比 700/420=1.666666667 虽然不等于2,但是并行的效果是显而易见的。
相关文章推荐
- java 多线程并行求数值积分(πPI) 之 join() 方法应用
- java多线程应用中常用的sleep、yield、join、wait、notify、notifyAll方法介绍
- JAVA多线程 join() 方法详解及应用场景
- JAVA多线程 join() 方法详解及应用场景
- JAVA多线程 join() 方法详解及应用场景
- java多线程中join()方法
- java多线程中的join方法详解
- java例程练习(多线程——join()方法)
- Java多线程中join方法的理解
- 五、初学Java多线程:join方法的使用
- Java多线程:(三)一些方法:start(),sleep(),yield(),join()
- java多线程系列_join方法的使用(5)
- Java【多线程知识总结(7)】多线程同步问题-关于synchronized代码块和synchronized方法的应用
- java多线程-join方法
- 黑马程序员:Java基础——多线程的停止与守护以及Join,优先级和yield方法
- 转载:Java多线程中join方法的理解
- java例程练习(多线程[join()方法])
- Java多线程编程方法join -深入浅出Java
- 初学Java多线程:join方法的使用
- 5. 初学Java多线程:join方法的使用