您的位置:首页 > 编程语言 > Java开发

Java多线程—继承Thread类实现求和

2016-11-08 10:44 399 查看
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 class aa {
public static void main(String[] args) throws InterruptedException {
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));
}
}

运行结果:

并行结果=500000000500000000

并行时间=1372

串行结果=500000000500000000

串行时间=2731

总结:

相对加速比为:

        2731/1372=1.99


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java多线程
相关文章推荐