多线程操作:

编写一个有两个线程的程序,第一个线程用来计算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之间的素数的个数相关推荐

  1. 【Java 基础篇】【第一课】HelloWorld

    1.第一步 javaSDK和Eclipse下载就不说了,搞定了这两样之后: 2.打开Eclipse,新建一个项目: File->New->Java Project 点击finish即可 3 ...

  2. java基础篇---第一天

    今日开始在心中正式开始在培训班开始培训.一下是在培训的过程中发现自己在自学过的过程中发现的问题.这篇是java基础篇. 第一天 : 1)配置java环境变量 1.在系统变量中新建JAVA_HOME:j ...

  3. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  4. Java基础、多线程、JVM、集合八股文自述(持续更新)

    Java基础.多线程.JVM.集合八股文自述 一.Java基础 1.1 object类有哪些方法? getClass().hashCode().equals().clone().toString(). ...

  5. 菜鸟学习笔记:Java基础篇6(数组、字符串)

    菜鸟学习笔记:Java常用类(数组.字符串) 数组 概述 数组的定义 二维数组 数组查找和排序 查找 排序 数组运用--字符串 不可变字符序列(String) 可变字符序列(StringBuilder ...

  6. 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)

    菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...

  7. Java基础篇--设计模式

    目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...

  8. 【程序员养成之路】Java基础篇 8-流进流出的IO流(二)

    以下内容若有误,欢迎私信我或在下方留言,谢谢^_− 目录 IO流(二) 1.特殊操作流 1.1 标准流 1.2 打印流 1.3 对象序列化流 1.4 Properties 拓展1:比较字节流和字节缓冲 ...

  9. Java基础篇 学习笔记

    List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...

最新文章

  1. 一蹴而就的解释是什么_聪明的孩子喜欢问“为什么”,还是喜欢问“为什么”让孩子聪明?...
  2. mysql2000数据库四合一_sqlserver2000个人版64
  3. 近视手术─医学界的一个阴谋? !
  4. python连接数据库mysql错误1045_django 连接数据库出现1045错误的解决方式
  5. 企业网站前端制作实战教程 JQuery CSS JS HTML 登录表单验证
  6. Python:Tensorflow中两个稀疏张量相乘
  7. sqoop建表_Sqoop基础教程
  8. 什么样的环境才是最理想的工作环境呢?
  9. 拇指接龙游戏中的Undo道具与STL容器deque简介
  10. [报告]HDU 4343 Interval query
  11. EBS系统常见问题与故障
  12. 微信公众平台自动回复详解
  13. 笔记本电脑连接(扩展)外接显示器之后桌面图标乱放位置解决办法-以win10系统为例
  14. 因果森林总结:基于树模型的异质因果效应估计
  15. 单车组装的思路(本文尽量针对2K以内的山地车)
  16. 一、软件测试学习方向
  17. java pdf替换内容_java PDF批量替换关键词
  18. 大数据之scala学习(一) 案例操作
  19. 解决usr/bin/ld: cannot find -lxxx问题
  20. 世界卫生组织关于糖尿病、眼部疾病的相关数据整理

热门文章

  1. opencv 播放mp4
  2. 古玩文物字画寄售系统源码/拍卖商城系统源码/竞拍系统源码转拍系统
  3. 大众点评:下一个百亿公司
  4. MEM/MBA数学基础(08)数据分析
  5. Vue全家桶之VueX(六)
  6. Hive查询系列之初相识
  7. Discuz! 帖子外链自动添加nofollow的方法
  8. 小程序获取节点绑定数据data-index的方法
  9. Sharding-Sphere 的应用性能监控实践
  10. matlab中som结果,som 运行结果怎么看啊