java使用多線程找出最大隨機(jī)數(shù)
本文實(shí)例為大家分享了java用多線程找出最大隨機(jī)數(shù)的具體代碼,供大家參考,具體內(nèi)容如下
問題: 系統(tǒng)隨機(jī)生成 10000 個(gè)數(shù),構(gòu)造 5 個(gè)線程并利用它們的 Join 方法計(jì)算這些隨機(jī)數(shù)的最大值。
思路:
1)、定義一個(gè)全局變量AllMax來記錄在最大值
2)、自定義myThread類繼承自Thread,重寫run函數(shù)。
3)、Run函數(shù),循環(huán)兩千次,每次產(chǎn)生一個(gè)10000以內(nèi)的隨機(jī)數(shù),與AllMax進(jìn)行比較,若大于AllMax,則立即將AllMax更新。
4)、實(shí)例化MyThread,創(chuàng)建五個(gè)線程,同步執(zhí)行。使用jion函數(shù),等各線程執(zhí)行完,則輸出AllMax
public class four2 {
static long AllMax=-1;
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThr t1=new MyThr();
MyThr t2=new MyThr();
MyThr t3=new MyThr();
MyThr t4=new MyThr();
MyThr t5=new MyThr();
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
try {
t1.join();
t2.join();
t3.join();
t4.join();
t5.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("10000個(gè)數(shù)中的最大值為:"+AllMax);
}
public static class MyThr extends Thread{
public void run(){
long rand;
for(int i=1;i<=2000;i++){
rand=(long)(Math.random()*100000)%100000;
//System.out.println(rand);
if(rand>AllMax){
AllMax=rand;
}
}
}
}
}
--------------后話------------------
按照平時(shí)用的選擇最大隨機(jī)數(shù)的方法和多線程方法比較,所用時(shí)間還是普通方法快。
以下是測試對(duì)比圖:
1.傳統(tǒng)方法:

2.多線程方法所用時(shí)間:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatisPlus自定義SQL的實(shí)現(xiàn)
MyBatisPlus提供了自定義SQL功能,允許開發(fā)者在Mapper接口中定義方法,并通過XML文件或注解編寫SQL語句,本文詳解了如何在MP中使用自定義SQL,感興趣的可以了解一下2024-09-09
IDEA創(chuàng)建方法時(shí)如何快速添加注釋
這篇文章主要介紹了IDEA創(chuàng)建方法時(shí)如何快速添加注釋問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
SpringBoot基于Redis實(shí)現(xiàn)短信登錄的操作
驗(yàn)證碼登錄是非常常見的一種登錄方式,能夠簡化用戶登錄的過程,本文主要介紹了SpringBoot基于Redis實(shí)現(xiàn)短信登錄的操作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
Java并發(fā) CompletableFuture異步編程的實(shí)現(xiàn)
這篇文章主要介紹了Java并發(fā) CompletableFuture異步編程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
SpringBoot與單元測試JUnit的結(jié)合操作
這篇文章主要介紹了SpringBoot與單元測試JUnit的結(jié)合操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

