Java基础篇--多线程之第一个线程用来计算2~100000之间的素数的个数,第二个线程用来计算100000~200000之间的素数的个数
多线程操作:
编写一个有两个线程的程序,第一个线程用来计算2~100000之间的素数的个数,第二个线程用来计算100000~200000之间的素数的个数,最后输出结果。
1、判断是否为素数的方法:
是返回true,不是返回false
static Boolean isPrimeNumber(long num) {//判断是否为素数//判断一个数是否为素数if (num == 2) return true;//2特殊处理if (num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数for (int i = 3; i <= Math.sqrt(num); i += 2) {if (num % i == 0) {//识别被奇数整除return false;}}return true;}
2、计算一个范围内素数的方法
static int PriNum(long num1, long num2) {//计算两数之间有几个素数int n = 0;//用来计数for (; num1 <= num2; num1++) {if (isPrimeNumber(num1))n++;}return n;
}
3、写一个thread2继承Runnable接口,写俩属性start和end,添加构造方法,再重写run方法。
整体代码如下
/*** 编写两个线程,一个计算2~100000之间素数的个数,另一个计算100000~200000之间的素数个数*/
public class ThreadWork2 {static class Thread2 implements Runnable {private long start, end;public Thread2(long start, long end) {//构造方法,传入两个值this.start = start;this.end = end;}static int PriNum(long num1, long num2) {//计算两数之间有几个素数int n = 0;//用来计数for (; num1 <= num2; num1++) {if (isPrimeNumber(num1))n++;}return n;}static Boolean isPrimeNumber(long num) {//判断是否为素数//判断一个数是否为素数if (num == 2) return true;//2特殊处理if (num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数for (int i = 3; i <= Math.sqrt(num); i += 2) {if (num % i == 0) {//识别被奇数整除return false;}}return true;}@Overridepublic void run() {//重写run方法System.out.println(start + "到" + end + "之间有:" + PriNum(start, end) + "个素数");}}public static void main(String[] args) {Thread thread1 = new Thread(new Thread2(2,100000));Thread thread2 = new Thread(new Thread2(100000,200000));thread1.start();thread2.start();}}
Java基础篇--多线程之第一个线程用来计算2~100000之间的素数的个数,第二个线程用来计算100000~200000之间的素数的个数相关推荐
- 【Java 基础篇】【第一课】HelloWorld
1.第一步 javaSDK和Eclipse下载就不说了,搞定了这两样之后: 2.打开Eclipse,新建一个项目: File->New->Java Project 点击finish即可 3 ...
- java基础篇---第一天
今日开始在心中正式开始在培训班开始培训.一下是在培训的过程中发现自己在自学过的过程中发现的问题.这篇是java基础篇. 第一天 : 1)配置java环境变量 1.在系统变量中新建JAVA_HOME:j ...
- 《Java 后端面试经》Java 基础篇
<Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...
- Java基础、多线程、JVM、集合八股文自述(持续更新)
Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...
- 菜鸟学习笔记:Java基础篇6(数组、字符串)
菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...
- 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)
菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...
- Java基础篇--设计模式
目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...
- 【程序员养成之路】Java基础篇 8-流进流出的IO流(二)
以下内容若有误,欢迎私信我或在下方留言,谢谢^_− 目录 IO流(二) 1.特殊操作流 1.1 标准流 1.2 打印流 1.3 对象序列化流 1.4 Properties 拓展1:比较字节流和字节缓冲 ...
- Java基础篇 学习笔记
List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...
最新文章
- 一蹴而就的解释是什么_聪明的孩子喜欢问“为什么”,还是喜欢问“为什么”让孩子聪明?...
- mysql2000数据库四合一_sqlserver2000个人版64
- 近视手术─医学界的一个阴谋? !
- python连接数据库mysql错误1045_django 连接数据库出现1045错误的解决方式
- 企业网站前端制作实战教程 JQuery CSS JS HTML 登录表单验证
- Python:Tensorflow中两个稀疏张量相乘
- sqoop建表_Sqoop基础教程
- 什么样的环境才是最理想的工作环境呢?
- 拇指接龙游戏中的Undo道具与STL容器deque简介
- [报告]HDU 4343 Interval query
- EBS系统常见问题与故障
- 微信公众平台自动回复详解
- 笔记本电脑连接(扩展)外接显示器之后桌面图标乱放位置解决办法-以win10系统为例
- 因果森林总结:基于树模型的异质因果效应估计
- 单车组装的思路(本文尽量针对2K以内的山地车)
- 一、软件测试学习方向
- java pdf替换内容_java PDF批量替换关键词
- 大数据之scala学习(一) 案例操作
- 解决usr/bin/ld: cannot find -lxxx问题
- 世界卫生组织关于糖尿病、眼部疾病的相关数据整理