LINUX下的線程同步——mutex和讀寫鎖

來源:互聯網
上載者:User

用mutex保護的程式碼片段,無論讀寫,一個線程佔有時,別的線程都必須等待。

 

讀寫鎖可以使多個線程同時讀取,具體說來如下:

當讀寫鎖是寫加鎖狀態時,在這個鎖被解鎖之前,所有試圖對這個鎖加鎖的線程都會被阻塞。

當讀寫鎖在讀加鎖狀態時,所有試圖以讀模式對它進行加鎖的線程都可以得到訪問權,但是如果線程希望以寫入模式對此鎖進行加鎖,它必須阻塞直到所有的線程釋放鎖。

通常,當讀寫鎖處於讀模式鎖住狀態時,如果有另外線程試圖以寫入模式加鎖,讀寫鎖通常會阻塞隨後的讀模式鎖請求,這樣可以避免讀模式鎖長期佔用,而等待的寫入模式鎖請求長期阻塞。

 

和mutex相關的幾個函數:

pthread_mutex_init

pthread_mutex_destroy

pthread_mutex_lock

pthread_mutex_unlock

 

和讀寫鎖相關的幾個函數:

pthread_rwlock_init

pthread_rwlock_destroy

pthread_rwlock_rdlock

pthread_rwlock_wrlock

pthread_rwlock_unlock

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.