1. 程式人生 > 程式設計 >java使用多執行緒找出最大隨機數

java使用多執行緒找出最大隨機數

本文例項為大家分享了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.傳統方法:

java使用多執行緒找出最大隨機數

2.多執行緒方法所用時間:

java使用多執行緒找出最大隨機數

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。