很久沒看apue,今天一位朋友問道關於乙個mutex的問題,又翻到了以前討論過的東西,為了不讓自己忘記,把曾經的東西總結一下。
先大體看下網上很多地方都有的關於pthread_cond_wait()的說明:
現在來看一段典型的應用:看注釋即可。
[cpp]view plain
copy
#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 用法分析
很久沒看apue,今天一位朋友問道關於乙個mutex的問題,又翻到了以前討論過的東西,為了不讓自己忘記,把曾經的東西總結一下。先大體看下網上很多地方都有的關於pthread cond wait 的說明 現在來看一段典型的應用 看注釋即可。include include static pthread ...
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...