首頁>Club>
4
回覆列表
  • 1 # 使用者8016113942891

    lock 互斥鎖lock將語句塊標記為臨界區,當一個執行緒獲取到鎖後,其他執行緒如果需要使用該臨界區則必須要等待前一個執行緒使用完畢後釋放鎖後才可以使用。(想象成上廁所,鎖門一樣)執行緒同步就用到這個。Readwritelock 讀寫鎖假設採用lock鎖:如果一個物件有讀方法和寫方法,那麼擁有該物件的某個執行緒在進行讀取或者寫入的時候,其他執行緒就無法進行讀取或寫入。那麼如果使用readwritelock 鎖的話,當擁有該物件的某個執行緒在進行讀取時,其他執行緒也可以進行讀取,但是不能寫入操作(例如,大家都在上廁所的時候,保潔不能打掃廁所)。當該執行緒進行寫入操作時,其他執行緒不可以讀取和寫入(例如,保潔打掃廁所的時候,任何人不能入內)。所以readwritelock 鎖,只有在進行寫操作的時候,才會阻斷其他執行緒,即執行緒同步,當進行讀取操作的時候,其他讀操作的執行緒可以進行併發進行,則寫操作等待。用上廁所舉例子總結Readwritelock 。上大號的(執行緒一)、上小號的(執行緒二)、保潔(執行緒三)上大號的和上小號的可以同時在使用廁所,保潔則無法使用廁所(不考慮保潔上廁所的問題,當然保潔上廁所就歸屬於大號或者小號了)。當保潔進入廁所打掃時,其他保潔以及上大號的和上小號的都無法使用廁所。該鎖的主要作用就是提高了併發訪問的效能。

  • 中秋節和大豐收的關聯?
  • 想買個聽歌的音樂播放器用來聽歌的,重要的是音效夠好求推薦一款?