1、兩種實現形式,繼承thread類,實現runnable介面,thread也是實現了runnable介面,thread原始碼中有乙個target物件,runnable型別。可通過這種方法實現多個執行緒的資源共享,如下:
public class main
}
/***
* @author jerome
*/public class testthread implements runnable }}
執行結果如下:
[img]
兩個執行緒共享了變數count;
2、執行緒通過wait進入阻塞狀態,即等待獲取鎖,一般的鎖為this(當前執行緒)必須呼叫notify喚醒之後才能繼續被分配cpu資料執行;
synchronized (this)
this.notify();
wait()和notify()因為會對物件的「鎖標誌」進行操作,所以它們必須在synchronized函式或synchronized**塊中進行呼叫。
3、終止執行緒有3中方法,設定標誌位(run方法執行正常退出),呼叫interrupt(),呼叫stop(),後面兩種是讓執行緒丟擲異常而退出,不推薦;
4、sleep不會釋放鎖標誌;
5、所謂的執行緒之間保持同步,是指不同的執行緒在執行同乙個物件的同步**塊時,因為要獲得物件的同步鎖而互相牽制,不同物件不存在同步的問題;
6、synchronized 關鍵字能夠修飾乙個物件例項中的函式或者**塊。 在乙個非靜態方法中 this 關鍵字表示當前的例項物件。 在乙個 synchronized 修飾的靜態的方法中,這個方法所在的類使用 class 作為例項物件
Boost之多執行緒
c 標準庫沒有涉及執行緒,在c 中,雖然不可能寫出標準相容的多執行緒程式,程式設計師可以使用特定作業系統提供的執行緒庫來寫出多執行緒程式來。可是,這至 少導致兩個突出的問題 作業系統普遍提供的是c庫,在c 中使用要更小心,每個作業系統都有自己的一套支援多執行緒的庫 另外,不標準,不可移植。boost...
linux之多執行緒
linux系統下的多執行緒遵循posix執行緒介面,稱為pthread 標頭檔案 include 原型 int pthread create pthread t tidp,const pthread attr t attr,void start rtn void void arg 返回值 若執行緒建...
c 之多執行緒
1.對多執行緒的呼叫用到頭檔案 1.1中的操縱函式 pthread create pthread t tidp,constpthread attr t attr,void start rtn void void arg 第乙個引數為指向執行緒 識別符號的 指標。第二個引數用來設定執行緒屬性。第三個引...