java多線程(簡單介紹)

來源:互聯網
上載者:User

標籤:this   包括   簡單例子   自己的   start   join()   包含   定義   16px   

簡單介紹

  線程是程式啟動並執行基本執行單元。當作業系統(不包括單線程的作業系統,如微軟早期的DOS)在執行一個程式時,會在系統中建立一個進程,而在這個進程中,必須至少建立一個線程(這個線程被稱為主線程)來作為這個程式啟動並執行進入點。因此,在作業系統中啟動並執行任何程式都至少有一個主線程。

  線程不僅可以共用進程的記憶體,而且還擁有一個屬於自己的記憶體空間,這段線程不僅可以共用進程的記憶體,而且還擁有一個屬於自己的記憶體空間,這段部所使用的資料,如線程執行函數中所定義的變數。

注意:任何一個線程在建立時都會執行一個函數,這個函數叫做線程執行函線程類的一些常用方法

  sleep(): 強迫一個線程睡眠N毫秒。 

  isAlive(): 判斷一個線程是否存活。 

  join(): 等待線程終止。 //只有等到子線程結束了主線程才能執行。(Waits for this thread to die.)

  activeCount(): 程式中活躍的線程數。 

  enumerate(): 枚舉程式中的線程。 

  currentThread(): 得到當前線程。 

  isDaemon(): 一個線程是否為守護線程。 

  setDaemon(): 設定一個線程為守護線程。(使用者線程和守護線程的區別在於,是否等待主線程依賴於主線程結束而結束) 

  setName(): 為線程設定一個名稱。 

  wait(): 強迫一個線程等待。 

  notify(): 通知一個線程繼續運行。 

  setPriority(): 設定一個線程的優先順序

多線程的實現方式

通過以下兩種方法建立 Thread 對象:

繼承Thread

Java中“一切皆對象”,線程也被封裝成一個對象。我們可以通過繼承Thread類來建立線程。線程類中的的run()方法包含了該線程應該執行的指令。我們在衍生類中覆蓋該方法,以便向線程說明要做的任務:

聲明一個 Thread 類的子類,並覆蓋 run() 方法

class myThread extends Thread{    @Override    public void run() {        System.out.println("繼承Thread");    }}

簡單例子

main執行
 System.out.println("多線程開始:");        for(int i=1;i<=10;i++) {            stat(i);        }

//隨機延遲
public static int reandom(int stop,int stat ){
return (int)Math.round(Math.random()*(stat-stop)+stop);
}



public static void stat(int i){ System.out.print("線程:"+i+" 開始運行"); Thread t=new Thread(){ public void run(){ System.out.println(UUID.randomUUID()); } }; int s=reandom(5,2); System.out.print(" 延遲:"+s+"秒 唯一UUID:"); try { t.sleep(s*1000); } catch (InterruptedException e) { e.printStackTrace(); } t.start(); try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); }
固定線程

 

  //固定線程10        ExecutorService service =Executors.newFixedThreadPool(10);        for (int i = 0; i < 23; i++) {            service.execute(new Runnable() {                @Override                public void run() {                    System.out.println(Thread.currentThread());                }            });        }

 

java多線程(簡單介紹)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.