拆分成5段分别计算

public class Test4XianChengJoin {

public static void main(String[] args) {

/**

* 求1000万内的质数数量

*/

long t;

int r;

t=System.currentTimeMillis();

//单个线程

try {

r=f2();//五个线程

System.out.println("质数数量:"+r);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(System.currentTimeMillis()-t);

}

private static int f2() throws InterruptedException {

T1 t1=new T1(1,2000000);

T1 t2=new T1(2000000,4000000);

T1 t3=new T1(4000000,6000000);

T1 t4=new T1(6000000,8000000);

T1 t5=new T1(8000000,10000000);

t1.start();

t2.start();

t3.start();

t4.start();

t5.start();

t1.join();

t2.join();

t3.join();

t4.join();

t5.join();

int r=t1.count+t2.count+t3.count+t4.count;

return r;

}

public static int f1() throws InterruptedException {

T1 t1=new T1(1,10000000);

t1.start();

t1.join();//main等待t1线程执行结束

return t1.count;

}

static class T1 extends Thread{

int start;

int end;

int count;

//[start,end)

public T1(int start, int end) {

if(start<3){

count=1;

start=3;

}

this.start = start;

this.end = end;

}

@Override

public void run() {

for(int i=start;i

{

if(prime(i))count++;

}

}

private boolean prime(int i) {

double max=Math.sqrt(i)+1;

for(int j=2;j

{

if(i%j==0)

{

return false;

}

}

return true;

}

}

}

运行结果

质数数量:539777

4711

java 并行多线程素数,多线程求求1000万内的质数数量相关推荐

  1. java 100万 100 最大 选出_面试真题:求100万内的质数

    一个头发稀少.穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:"我会用电脑记录面试过程,你不要介意啊". 我回答到:"没关系." 面试官:& ...

  2. 素数筛法求十亿内所有质数的和(C++)

    埃拉托斯特尼筛法(又称埃氏筛)的基本思想是:要得到自然数n以内的全部素数,必须把不大于的所有素数的倍数剔除,剩下的就是素数. 时间复杂度O(nloglogn) #include <iostrea ...

  3. 什么 APP 能在 3 个月内有 1000 万用户?

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 如今的互联网巨头很多都是社交巨头:中国的腾讯正是凭借 QQ 和微信两大社交产品成为 BAT 三巨头之一,而美国的 Facebook.Snapch ...

  4. 明翰Java教学系列之多线程篇V0.2(持续更新)

    文章目录 传送门 前言 背景知识 并行与并发 线程与进程 内存模型 1. 计算机内存模型 `2. Java内存模型` 2.1 内存交互 2.1.1 交互操作 2.1.2 交互规则 `2.2 并发编程特 ...

  5. Java基础篇:多线程

    文章目录 1.概念:程序.进程.线程 2.线程的创建和使用 3.线程的生命周期 4.线程的同步 5.线程的通信 6.JDK5.0新增线程创建方法 1.概念:程序.进程.线程 程序(program)是为 ...

  6. 2019-06-03 Java学习日记 day24 多线程

    多线程 线程是程序执行的一台路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程的应用背景 红蜘蛛同时共享屏幕给多个电脑 迅雷开启多条线程一起下载 QQ同时 ...

  7. Java 程序中的多线程

    在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...

  8. 第四章Java核心类库_多线程

    第四章第五节Java核心类库_多线程 多线程 一.线程与进程 1.线程与进程 2.线程调度 二.同步与异步&并发与并行 1. 同步与异步 2. 并发与并行 三.继承Thread 1.代码块 2 ...

  9. Java 基础篇:多线程基本概念

    目录 前言 一 .基本概念 1.1 程序 - 进程 - 线程 1.2 线程调度 1.3 同步与异步 1.4 并发与并行 二.多线程的创建和启动 2.1 Thread 类 2.2 创建线程的两种方式 2 ...

最新文章

  1. 如何在Ubuntu/CentOS上安装Linux内核4.0
  2. python对象一定要删除引用吗_Python:删除自引用对象
  3. pycharm 提示 ennble Code compatibility inspection(代码兼容性检查)
  4. OC开发_整理笔记—— CoreLocation(1)基本使用
  5. linux 网口名称变了_CentOS7修改网卡名称为eth0及一些基本设置
  6. Spring AOP注解
  7. socket编程(四)
  8. [总结] 本人代表性博客总结
  9. Ubuntu18.04有线+离线划词翻译GoldenDict
  10. 解决springboot jar包冲突
  11. oracle数据库应用中实现汉字“同音”查询
  12. linux 测试udp端口是否打开,udp端口如何打开?UDP端口测试介绍
  13. MATLAB textscan之模式匹配用法
  14. dns性能测试软件,开源dns软件之-mydns和bind性能测试与比较
  15. 易语言流程控制程序暂停开始继续
  16. python做事件研究法_35行代码搞定事件研究法(上)
  17. 万字长文,一文讲透!终于有人把商业智能(BI)讲清楚了
  18. 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读
  19. python文件打包成之pyinstaller使用
  20. 备忘5:爬取微博热门信息以及所有热门微博评论的用户信息

热门文章

  1. 为什么极度随机树比随机森林更随机?这个极度随机的特性有什么好处?在训练阶段、极度随机数比随机森林快还是慢?
  2. python列表(list)中出现次数最多的元素使用collection包的Counter方法
  3. R语言画形状—直线、矩形、多边形等
  4. java restfulapi 返回文件base64_Java反序列化:一次构造后Ysoserial Payload
  5. The advantages of SMRT sequencing
  6. Linux下的编译(环境是centos6.8 gcc 4.4.7)
  7. (邓爱萍)Java抽象 继承 接口
  8. c语言main的作用是什么意思,c语言intmain()是什么意思
  9. 5.Queue和Deque的区别与联系
  10. 二十二、插值查找算法