java使用多線程找出最大隨機數(shù)
本文實例為大家分享了java用多線程找出最大隨機數(shù)的具體代碼,供大家參考,具體內容如下
問題: 系統(tǒng)隨機生成 10000 個數(shù),構造 5 個線程并利用它們的 Join 方法計算這些隨機數(shù)的最大值。
思路:
1)、定義一個全局變量AllMax來記錄在最大值
2)、自定義myThread類繼承自Thread,重寫run函數(shù)。
3)、Run函數(shù),循環(huán)兩千次,每次產生一個10000以內的隨機數(shù),與AllMax進行比較,若大于AllMax,則立即將AllMax更新。
4)、實例化MyThread,創(chuàng)建五個線程,同步執(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個數(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ù)的方法和多線程方法比較,所用時間還是普通方法快。
以下是測試對比圖:
1.傳統(tǒng)方法:
2.多線程方法所用時間:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SpringBoot基于Redis實現(xiàn)短信登錄的操作
驗證碼登錄是非常常見的一種登錄方式,能夠簡化用戶登錄的過程,本文主要介紹了SpringBoot基于Redis實現(xiàn)短信登錄的操作,具有一定的參考價值,感興趣的可以了解一下2023-12-12Java并發(fā) CompletableFuture異步編程的實現(xiàn)
這篇文章主要介紹了Java并發(fā) CompletableFuture異步編程的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01