pthread_mutex_unlock

pthread_mutex_unlock

pthread_mutex_unlock是可以解除鎖定 mutex 所指向的互斥鎖的函式。

基本介紹

  • 中文名:pthread_mutex_unlock
  • 頭檔案:#include<pthread.h>
  • 說明:釋放互斥鎖,
  • 參數:需要解鎖的鎖變數對象。
互斥鎖,解鎖定互斥鎖,代碼示例,

互斥鎖

線上程實際運行過程中,我們經常需要多個執行緒保持同步。這時可以用互斥鎖來完成任務;互斥鎖的使用過程中,主要有pthread_mutex_init,pthread_mutex_destory,pthread_mutex_lock,pthread_mutex_unlock這幾個函式以完成鎖的初始化,鎖的銷毀,上鎖和釋放鎖操作。
下表列出了用來處理互斥鎖的函式。
操作
相關函式說明
初始化互斥鎖
pthread_mutex_init語法
使互斥鎖保持一致
pthread_mutex_consistent_np語法
鎖定互斥鎖
pthread_mutex_lock語法
解除鎖定互斥鎖
pthread_mutex_unlock語法
使用非阻塞互斥鎖鎖定
pthread_mutex_trylock語法
銷毀互斥鎖
pthread_mutex_destroy語法
預設調度策略 SCHED_OTHER 不指定執行緒可以獲取鎖的順序。如果多個執行緒正在等待一個互斥鎖,則獲取順序是不確定的。出現爭用時,預設行為是按優先權順序解除執行緒的阻塞。

解鎖定互斥鎖

對於 Solaris 執行緒,請參見mutex_unlock語法
pthread_mutex_unlock語法
int pthread_mutex_unlock(pthread_mutex_t *mutex);
#include <pthread.h>
pthread_mutex_t mutex;
int ret;
ret = pthread_mutex_unlock(&mutex); /* release the mutex */
pthread_mutex_unlock()可釋放mutex引用的互斥鎖對象。互斥鎖的釋放方式取決於互斥鎖的類型屬性。 如果調用pthread_mutex_unlock()時有多個執行緒被mutex對象阻塞,則互斥鎖變為可用時調度策略可確定獲取該互斥鎖的執行緒。 對於PTHREAD_MUTEX_RECURSIVE類型的互斥鎖,當計數達到零並且調用執行緒不再對該互斥鎖進行任何鎖定時,該互斥鎖將變為可用。
pthread_mutex_unlock返回值
pthread_mutex_unlock()在成功完成之後會返回零。其他任何返回值都表示出現了錯誤。如果出現以下情況,該函式將失敗並返回對應的值。

    代碼示例

    下面 顯示了使用互斥鎖定的一些代碼段。
    #include <pthread.h>
    pthread_mutex_t count_mutex;
    long long count;
    void
    increment_count()
    {
    pthread_mutex_lock(&count_mutex);

    相關詞條

    熱門詞條

    聯絡我們