java使用多線程找出最大隨機(jī)數(shù)
本文實(shí)例為大家分享了java用多線程找出最大隨機(jī)數(shù)的具體代碼,供大家參考,具體內(nèi)容如下
問(wèn)題: 系統(tǒng)隨機(jī)生成 10000 個(gè)數(shù),構(gòu)造 5 個(gè)線程并利用它們的 Join 方法計(jì)算這些隨機(jī)數(shù)的最大值。
思路:
1)、定義一個(gè)全局變量AllMax來(lái)記錄在最大值
2)、自定義myThread類繼承自Thread,重寫(xiě)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í)間還是普通方法快。
以下是測(cè)試對(duì)比圖:
1.傳統(tǒng)方法:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Springboot+gateway整合依賴并處理依賴沖突問(wèn)題
這篇文章主要介紹了Springboot+gateway整合依賴并處理依賴沖突問(wèn)題,給大家提到了spring boot版本和spring cloud版本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
Java 反射調(diào)用靜態(tài)方法的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇Java 反射調(diào)用靜態(tài)方法的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
教你在一分鐘之內(nèi)理解Java Lambda表達(dá)式并學(xué)會(huì)使用
今天給大家?guī)У奈恼率荍ava8新特性的相關(guān)知識(shí),文章圍繞著如何在一分鐘之內(nèi)理解Java Lambda表達(dá)式并學(xué)會(huì)使用展開(kāi),文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06
關(guān)于Java的HashMap多線程并發(fā)問(wèn)題分析
HashMap是采用鏈表解決Hash沖突,因?yàn)槭擎湵斫Y(jié)構(gòu),那么就很容易形成閉合的鏈路,這樣在循環(huán)的時(shí)候只要有線程對(duì)這個(gè)HashMap進(jìn)行g(shù)et操作就會(huì)產(chǎn)生死循環(huán),本文針對(duì)這個(gè)問(wèn)題進(jìn)行分析,需要的朋友可以參考下2023-05-05
Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成(后端工具類)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)滑動(dòng)驗(yàn)證碼生成功能中的后端工具類部分,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10
spring使用@Async注解導(dǎo)致循環(huán)依賴問(wèn)題異常的排查記錄
這篇文章主要介紹了spring使用@Async注解導(dǎo)致循環(huán)依賴問(wèn)題異常的排查記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Springboot自動(dòng)掃描包路徑來(lái)龍去脈示例詳解
這篇文章主要介紹了Springboot自動(dòng)掃描包路徑來(lái)龍去脈示例詳解,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解
這篇文章主要為大家介紹了最安全的加密算法Bcrypt防止數(shù)據(jù)泄露詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

