Java學習之併發多執行緒理解

忘塵天外天發表於2017-08-01

1、執行緒簡介:

  世間萬物會同時完成很多工作,如人體同時進行呼吸、血液迴圈、思考問題等活動,使用者既可以使用計算機聽歌也可以使用它列印檔案,而這些活動完全可以同時進行,這種思想在Java中稱為併發,而將併發完成的每一件事情稱為執行緒。Java語言提供併發機制,程式設計師可以在程式中執行多個執行緒,每一個執行緒完成一個功能,並與其它執行緒併發執行,這種機制稱為多執行緒。

2、實現執行緒的方式

在Java中主要提供兩種方式實現執行緒,分別為繼承java.lang.Thread類與實現java.lang.Runnable介面。

(1)繼承Thread類

Thread類是java.lang包中的一個類,從這個類中例項化的物件代表執行緒,程式設計師啟動一個新執行緒需要建立Thread例項。Thread類常用的構造方法如下:

  public  Thread(String  threadName)

  public  Thread()

第一個構造方法是建立一個名稱為threadName的執行緒物件。繼承Thread類建立一個新的執行緒語法格式如下:

  public  class  ThreadTest  extends  Thread{

       //................

  }

完成執行緒真正功能的程式碼放在類的run()方法中,當一個類繼承Thread類後,就可以在該類中覆蓋run()方法,將實現該執行緒功能的程式碼寫入run()方法中,然後同時呼叫Thread類的start()方法執行執行緒,本質上,start()方法執行對run()方法的呼叫。如果start()方法呼叫一個已經啟動的執行緒,系統會丟擲IllegalThreadStateException異常。

3、主執行緒

  當Java程式啟動時,會立即開始執行一個執行緒,因為它是程式開始時執行的程式,所以,這個執行緒通常稱為程式的主執行緒。主執行緒很重要:

  • 其它子執行緒都是從主執行緒產生的。
  • 通常,主執行緒必須是最後才結束執行的執行緒,因為它要執行各種關閉動作。

 儘管主執行緒是在程式啟動時自動建立的,但是可以通過Thread物件對其進行控制。呼叫currentThread()方法獲取對主執行緒的一個引用。該方法是Thread類的公有靜態成員,一般形式     static  Thread   currentThread() ;這個方法返回對呼叫它的執行緒的引用。得到對主執行緒的引用,就可以控制主執行緒了。

當執行一個程式時,就自動產生一個執行緒,主方法正是在這個執行緒上執行的。當不再啟動其它執行緒時,該程式就為單執行緒程式。主方法執行緒啟動由Java虛擬機器負責,程式設計師負責啟動自己的執行緒。一般語法:

    public  static  void main (String[] args){

        new  ThreadTest().start() ;

      }

該例項:

Thread類定義的方法
String  getName() 獲取執行緒的名稱
int  getPriority() 獲取執行緒的優先順序
boolean  isAlive() 確定執行緒是否仍然在執行
void   join() 等待執行緒終止
void   run() 執行緒的入口點
static  void  sleep(long millis) 掛起執行緒一段時間,毫秒計
void  start() 通過呼叫執行緒的run()方法啟動執行緒
   

相關文章