java使用多執行緒找出最大隨機數
阿新 • • 發佈:2020-07-20
本文例項為大家分享了java用多執行緒找出最大隨機數的具體程式碼,供大家參考,具體內容如下
問題: 系統隨機生成 10000 個數,構造 5 個執行緒並利用它們的 Join 方法計算這些隨機數的最大值。
思路:
1)、定義一個全域性變數AllMax來記錄在最大值
2)、自定義myThread類繼承自Thread,重寫run函式。
3)、Run函式,迴圈兩千次,每次產生一個10000以內的隨機數,與AllMax進行比較,若大於AllMax,則立即將AllMax更新。
4)、例項化MyThread,建立五個執行緒,同步執行。使用jion函式,等各執行緒執行完,則輸出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個數中的最大值為:"+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; } } } } }
--------------後話------------------
按照平時用的選擇最大隨機數的方法和多執行緒方法比較,所用時間還是普通方法快。
以下是測試對比圖:
1.傳統方法:
2.多執行緒方法所用時間:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。