1. 程式人生 > >多執行緒學習筆記(1)

多執行緒學習筆記(1)

1.執行緒的建立

兩種方式:繼承Thread類,實現Runnable介面

繼承Thread類:重寫run方法

實現Runnable介面:實現run方法,同時需在宣告時飲用Thread類構造方法來成為真正的執行緒物件。

實現Runnable介面的好處是:若所定義的類已經是其他類的子類,則不能通過繼承Thread類的方法實現多執行緒,這時實現介面的方式可以解決該問題

2.執行緒的啟動

myThread.start()

3.執行緒終止

採用 myThread.isAlive() 判定執行緒是否終止

4.執行緒的暫停

兩種方式:myThread.sleep(1000),myThread.join(1000)

sleep:執行緒睡眠一段時間後立即恢復執行

join:使當前執行的執行緒停下來等待,直至引用join方法的執行緒終止

5.執行緒的鎖

Java通過synchronized關鍵字來維護資料一致性,其機制是給共享資源上鎖,java中每個物件都有鎖,只有拿到鎖的執行緒才能對共享資源進行訪問

加鎖方式:給方法加鎖,給共享資源加鎖

-給方法加鎖:鎖定整個物件

public synchronized void put(){}

-給共享資源加鎖

synchronized(o1){對共享資源的操作}

6.執行緒的等待和喚醒(在synchronized方法或塊中)

等待:wait()

喚醒:喚醒單個執行緒notify(),喚醒所有執行緒notifyAll()-易造成競爭