【并行计算作业】java多线程技术求1000000以内的素数
2013-11-18 10:25
323 查看
CountDownLatch
package jingtianxiaozhi; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class CountdownLatchTest { public static int num; public static void main(String[] args) { long start =System.currentTimeMillis(); ExecutorService service = Executors.newCachedThreadPool(); final CountDownLatch cdAnswer = new CountDownLatch(2); Runnable runnable1 = new Runnable(){ public void run(){ try { for(int i=3;i<=1000000;i+=2) { boolean mark=true; for(int j=2;j<=Math.sqrt(i);j++) { if(i%j==0) { mark=false; break; } } if(mark) synchronized (Thread.class) { num++; } } cdAnswer.countDown(); } catch (Exception e) { e.printStackTrace(); } } }; Runnable runnable2 = new Runnable(){ public void run(){ try { for(int i=2;i<=1000000;i+=2) { boolean mark=true; for(int j=2;j<=Math.sqrt(i);j++) { if(i%j==0) { mark=false; break; } } if(mark) synchronized (Thread.class) { num++; } } cdAnswer.countDown(); } catch (Exception e) { e.printStackTrace(); } } }; service.execute(runnable1); service.execute(runnable2); try { cdAnswer.await(); System.out.println("1000000以内求得的素数个数是:"+num); long end =System.currentTimeMillis(); System.out.println("并行计算所用时间:"+(end-start)+"毫秒"); } catch (Exception e) { e.printStackTrace(); } service.shutdown(); } }
相关文章推荐
- java 多线程并行计算之求素数(星星笔记)
- 并行计算----5种方式实现判断是不是素数.Net,Win32,JavaRunnable,OpenMp,JavaThread
- 并行计算大作业之多边形相交(OpenMP、MPI、Java、Windows)
- 并行计算----5种方式实现判断是不是素数.Net,Win32,JavaRunnable,OpenMp,JavaThread
- 并行计算大作业之多边形相交(OpenMP、MPI、Java、Windows)
- JAVA 面试题 输出100以内的所有素数
- 500以内质数(素数)的计算
- 计算100以内的素数
- Java 7 Fork/Join 并行计算框架概览
- Java 7 Fork/Join 并行计算框架概览
- [Python]计算100以内的素数--一行代码filter方式
- 编写一个程序计算100以内的smith数,smith数的概念: 一个非素数,其各位数之和等于其所有质因数的个位数之和。 例如:4=2*2,4=2+2
- 软件工程第二次程序的作业:Java计算器实验
- 试题:求1000000以内的素数
- 并行计算作业脚本的编写
- 大规模并行批处理作业的分布式云服务——批量计算使用教程
- Ruby测试小代码[计算50以内的素数]
- java基础_求100以内的素数
- 超高速计算n以内素数个数(百亿内3毫秒解决)
- 常数优化的筛法求N以内素数表(附C语言、Java代码)