pthread cond wait 用法分析

2021-05-04 15:49:30 字數 1046 閱讀 2019

很久沒看apue,今天一位朋友問道關於乙個mutex的問題,又翻到了以前討論過的東西,為了不讓自己忘記,把曾經的東西總結一下。

先大體看下網上很多地方都有的關於pthread_cond_wait()的說明:

現在來看一段典型的應用:看注釋即可。

#include #include static pthread_mutex_t mtx = pthread_mutex_initializer;

static pthread_cond_t cond = pthread_cond_initializer;

struct node *head = null;

/*[thread_func]*/

static void cleanup_handler(void *arg)

static void *thread_func(void *arg)

p = head;

head = head->n_next;

printf("got %d from front of queue/n", p->n_number);

free(p);

pthread_mutex_unlock(&mtx); //臨界區資料操作完畢,釋放互斥鎖

}pthread_cleanup_pop(0);

return 0;

}int main(void)

printf("thread 1 wanna end the line.so cancel thread 2./n");

pthread_cancel(tid); //關於pthread_cancel,有一點額外的說明,它是從外部終止子執行緒,子執行緒會在最近的取消點,退出執行緒,而在我們的**裡,最近的取消點肯定就是pthread_cond_wait()了。關於取消點的資訊,有興趣可以google,這裡不多說了

pthread_join(tid, null);

printf("all done -- exiting/n");

return 0;

}

pthread cond wait 用法分析

現在來看一段典型的應用 看注釋即可。include include static pthread mutex t mtx pthread mutex initializer static pthread cond t cond pthread cond initializer struct node...

pthread cond wait 用法分析

很久沒看apue,今天一位朋友問道關於乙個mutex的問題,又翻到了以前討論過的東西,為了不讓自己忘記,把曾經的東西總結一下。先大體看下網上很多地方都有的關於pthread cond wait 的說明 現在來看一段典型的應用 看注釋即可。cpp view plain copy print inclu...

pthread cond wait 用法分析

很久沒看apue,今天一位朋友問道關於乙個mutex的問題,又翻到了以前討論過的東西,為了不讓自己忘記,把曾經的東西總結一下。先大體看下網上很多地方都有的關於pthread cond wait 的說明 現在來看一段典型的應用 看注釋即可。cpp view plain copy print?inclu...