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