题目
1.编写具有两个线程的程序,第一个线程用来计算2-1000000之间的质数及个数,第二个线程用来计算1000000-2000000之间的质数及个数。
2.编写多线程程序,显示目前正在运行的线程名和目前的活动线程数。
第一题
先将类继承,即extends Thread,并定义必要的数(开始数和结尾数)
定义构造类
1 | public Double(int begin,int end){ |
创建处理函数
简单的素数问题处理函数,具体的做法可以自行百度
1 | public void PrimeNumber(){ |
主函数的处理
其实主函数只需要定义结构体然后引用解决方法即可
1 | public static void main(String[] args) { |
结果

完全符合新必应的回答
改进

但是新必应(基于GPT4.0)指出我们的代码并没有启动新的线程,确实我们应该要重写run方法来调用处理判断素数的方法
1 | public void run() { |
添加的同时也应该改变主方法中的方法调用
1 | xiancheng1.run(); |
第二题
要显示当前正在运行的线程名和当前的活动线程数,可以使用Thread.currentThread().getName()来获取当前线程的名字,使用Thread.activeCount()来获取当前活动线程的数量。
在你的代码中,可以在PrimeNumber()方法的开头添加以下代码来显示当前正在运行的线程名:
1 | System.out.println("当前运行的线程名:" + Thread.currentThread().getName()); |
在main()方法中,你可以在创建线程后立即输出当前的活动线程数,可以像这样修改你的代码:
1 | public static void main(String[] args) { |
这样,当运行程序时,将会显示当前正在运行的线程名和当前的活动线程数。

我们发现线程名均为main说明没有进行多线程服务,查找信息我们发现,主函数调用时候是使用start方法而非run方法
1 | xiancheng1.start(); |
结果

完整代码如下
1 | public class Double extends Thread{ |
Java 数组—JAVA语言基础
数组是最为常见的一种数据结构,是相同类型的用一个标识符封装到一起的基本类型数据序列或对象序列。(本文章参考《Java从入门到精通 第5版 明日科技》。
Java 字符串—JAVA语言基础
字符串是Java程序中经常处理的对象,如果字符串运用得不好,将影响到程序运行的效率。(本文章参考《Java从入门到精通 第5版 明日科技》。故不采用
--- over ---
- 本文链接: https://i-nmb.cn/Java-multithreading.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。