java 并行多线程素数,多线程求求1000万内的质数数量
拆分成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万内的质数数量相关推荐
- java 100万 100 最大 选出_面试真题:求100万内的质数
一个头发稀少.穿着格子衬衣的中年男子走了进来,把手里拿的MAC放在桌子上,对我说:"我会用电脑记录面试过程,你不要介意啊". 我回答到:"没关系." 面试官:& ...
- 素数筛法求十亿内所有质数的和(C++)
埃拉托斯特尼筛法(又称埃氏筛)的基本思想是:要得到自然数n以内的全部素数,必须把不大于的所有素数的倍数剔除,剩下的就是素数. 时间复杂度O(nloglogn) #include <iostrea ...
- 什么 APP 能在 3 个月内有 1000 万用户?
硅谷Live / 实地探访 / 热点探秘 / 深度探讨 如今的互联网巨头很多都是社交巨头:中国的腾讯正是凭借 QQ 和微信两大社交产品成为 BAT 三巨头之一,而美国的 Facebook.Snapch ...
- 明翰Java教学系列之多线程篇V0.2(持续更新)
文章目录 传送门 前言 背景知识 并行与并发 线程与进程 内存模型 1. 计算机内存模型 `2. Java内存模型` 2.1 内存交互 2.1.1 交互操作 2.1.2 交互规则 `2.2 并发编程特 ...
- Java基础篇:多线程
文章目录 1.概念:程序.进程.线程 2.线程的创建和使用 3.线程的生命周期 4.线程的同步 5.线程的通信 6.JDK5.0新增线程创建方法 1.概念:程序.进程.线程 程序(program)是为 ...
- 2019-06-03 Java学习日记 day24 多线程
多线程 线程是程序执行的一台路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程的应用背景 红蜘蛛同时共享屏幕给多个电脑 迅雷开启多条线程一起下载 QQ同时 ...
- Java 程序中的多线程
在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应 ...
- 第四章Java核心类库_多线程
第四章第五节Java核心类库_多线程 多线程 一.线程与进程 1.线程与进程 2.线程调度 二.同步与异步&并发与并行 1. 同步与异步 2. 并发与并行 三.继承Thread 1.代码块 2 ...
- Java 基础篇:多线程基本概念
目录 前言 一 .基本概念 1.1 程序 - 进程 - 线程 1.2 线程调度 1.3 同步与异步 1.4 并发与并行 二.多线程的创建和启动 2.1 Thread 类 2.2 创建线程的两种方式 2 ...
最新文章
- 如何在Ubuntu/CentOS上安装Linux内核4.0
- python对象一定要删除引用吗_Python:删除自引用对象
- pycharm 提示 ennble Code compatibility inspection(代码兼容性检查)
- OC开发_整理笔记—— CoreLocation(1)基本使用
- linux 网口名称变了_CentOS7修改网卡名称为eth0及一些基本设置
- Spring AOP注解
- socket编程(四)
- [总结] 本人代表性博客总结
- Ubuntu18.04有线+离线划词翻译GoldenDict
- 解决springboot jar包冲突
- oracle数据库应用中实现汉字“同音”查询
- linux 测试udp端口是否打开,udp端口如何打开?UDP端口测试介绍
- MATLAB textscan之模式匹配用法
- dns性能测试软件,开源dns软件之-mydns和bind性能测试与比较
- 易语言流程控制程序暂停开始继续
- python做事件研究法_35行代码搞定事件研究法(上)
- 万字长文,一文讲透!终于有人把商业智能(BI)讲清楚了
- 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读
- python文件打包成之pyinstaller使用
- 备忘5:爬取微博热门信息以及所有热门微博评论的用户信息
热门文章
- 为什么极度随机树比随机森林更随机?这个极度随机的特性有什么好处?在训练阶段、极度随机数比随机森林快还是慢?
- python列表(list)中出现次数最多的元素使用collection包的Counter方法
- R语言画形状—直线、矩形、多边形等
- java restfulapi 返回文件base64_Java反序列化:一次构造后Ysoserial Payload
- The advantages of SMRT sequencing
- Linux下的编译(环境是centos6.8 gcc 4.4.7)
- (邓爱萍)Java抽象 继承 接口
- c语言main的作用是什么意思,c语言intmain()是什么意思
- 5.Queue和Deque的区别与联系
- 二十二、插值查找算法