求素数——多线程练习
生活随笔
收集整理的這篇文章主要介紹了
求素数——多线程练习
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
編寫一個(gè)有兩個(gè)線程的程序,第一個(gè)線程用來(lái)計(jì)算2~100000之間的素?cái)?shù)的個(gè)數(shù),
第二個(gè)線程用來(lái)計(jì)算100000~200000之間的素?cái)?shù)的個(gè)數(shù),最后輸出結(jié)果。
代碼實(shí)現(xiàn):
?
package com.thread;public class SuShuDemo1 extends Thread{private long suCount = 0;public boolean flag = false;public long getSuCount() {return suCount;}@Overridepublic void run() {for (long i=2;i<=100000;i++){for (long j=2;j<=Math.sqrt(i);j++){if (i%j==0){flag=true;break;}}if (flag==false){this.suCount++;}flag=false;}System.out.println(Thread.currentThread().getName()+"素?cái)?shù)一共有"+getSuCount()+"個(gè)");} }?
package com.thread;public class SuShuDemo2 implements Runnable {private long suShuCount2 = 0;public long getSuShuCount2() {return suShuCount2;}@Overridepublic void run() {for (long i =100000;i<=200000;i++){long j =0;for (j =2;j<=i;j++){if (i%j==0){break;}}if (i==j){this.suShuCount2++;}}System.out.println(Thread.currentThread().getName()+"素?cái)?shù)一共有"+getSuShuCount2()+"個(gè)");} }
package com.thread;public class SuShuDemo1Test {public static void main(String[] args) {SuShuDemo1 suShuDemo1 = new SuShuDemo1();SuShuDemo2 suShuDemo2 = new SuShuDemo2();Thread thread = new Thread(suShuDemo2);suShuDemo1.start();thread.start();} }
運(yùn)行結(jié)果:
?
Thread-0素?cái)?shù)一共有9592個(gè) Thread-1素?cái)?shù)一共有8392個(gè)?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zyx110/p/10837924.html
總結(jié)
以上是生活随笔為你收集整理的求素数——多线程练习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WIN7 下安装 SQL Server
- 下一篇: react-router中的exact和