nginx apache Ubuntu 程序员 php mysql shell Windows Android 微软 google Python 开源 编程 java 云计算 Firefox wordpress linux centos

创建线程的一些方法

  Linux系統開發多線程序大多使用pthread庫,pthread庫是符合POSIX線程標準的一個應用庫,提供了線程的管理和操作方法,pthread庫對線程操作的函數基本都以pthread開頭,創建線程的函數定義如下:

 使用pthread庫需要包含pthread.h頭文件,函數第一個參數中restrict是C99標準增加的一個關鍵字,作用是限制指針,使用restricted關鍵字修飾的指針所指向的數據是唯一的,換句話說,使用restrict關鍵字修飾一個指針後。指針所指向的數據僅被能夠指針所用。其他的指針無法再使用這塊新的數據。

  通過繼承Thread類或實現Runnable、Callable接口都可以實現多線程,不過實現Runnable接口與實現Callable接口的方式基本相同,只是Callable接口裏定義的方法有返回值,可以聲明拋出異常而已。因此可以將實現Runnable接口和實現Callable接口歸為一種方式。這種方式與繼承Thread方式之間的主要差別如下。 
  1.采用實現Runnable、Callable接口的方式創建多線程的優缺點: 
優勢:(1)線程類只是實現了Runnable接口與Callable接口,還可以繼承其他類。 
 (2)在這種方式下,多個線程可以共享一個target對象,所以非常適合多個相同線程來處理同一份資源的情況,從而可以將CPU、代碼和數據分開,形成清晰的模型,較好地體現了面向對象的思想。 
劣勢:編程稍稍復雜,如果需要訪問當前線程,則必須使用Thread.currentThread()方法。 
 2.采用繼承Thread類的方法創建多線程的優缺點: 
劣勢:因為線程類已經繼承了Thread類,所以不能再繼承其他父類。 
優勢:編寫簡單,如果需要訪問當前線程,則無須使用Thread.currentThread()方法,直接使用this即可獲得當前線程。 

 

延伸阅读

评论