Android第二十天

一:同步機制(synchronized)
    同步:在一個時間段內只能有一個線程運行某段代碼塊,在該線程運行的過程當中,
          其餘線程不能進入,只有該線程運行完畢該代碼塊(或釋放了同步鎖),其餘
          線程才能進入。
    1.同步代碼塊
      synchronized(同步對象){
          // 同步代碼塊
      }
      在Java中,每個對象都有一個「鎖」,同步對象的鎖爲「同步鎖」(互斥鎖),
      只有保證同一個「同步鎖」(互斥鎖),才能達到多個線程在某一個時間段內
      只能有一個線程運行同步代碼塊。
    2.同步方法
      訪問權限 [static] synchronized 方法返回值 方法名(參數列表){
            // 同步方法代碼塊
      }
      非靜態同步方法的同步對象就是當前對象(this)---實例對象。
    3.靜態同步方法
      含有static修飾的同步方法(static synchronized).
      靜態同步方法的同步對象是類對象。this

二:死鎖(DeadLock) (瞭解)
    多個線程互相持有對方須要的「互斥鎖」,從而互相等待對方釋放鎖,陷入「假死」的
    現象。
    "哲學家就餐"問題線程

三:生產者-消費者模式 (瞭解)Producer-Consumer
    1. wait(): 使當前線程等待。
    2. notify():喚醒在此對象監視器上等待的單個線程
    3. notifyAll():喚醒在此對象監視器上等待的全部線程。
    以上三個方法都必須在同步機制中調用,並且必須使用同步對象調用。
    每個Java對象都維護着一個線程等待池。對象

相關文章
相關標籤/搜索