linux条件锁

yiqingyang2012 yiqingyang2012 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
父线程里:
pthread_mutex_lock(&s_startupMutex);
pthread_attr_t attr;
pthread_attr_init (&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

printf("server_create_child_thread\n");
err = pthread_create(child_thread_value,&attr,child_thread,(void *)&peer );

while (child_thread_start == 0) {
printf("child_thread_start=0\n");
pthread_cond_wait(&s_startupCond, &s_startupMutex);
}
child_thread_start=0;
pthread_mutex_unlock(&s_startupMutex);

子线程里:
pthread_mutex_lock(&s_startupMutex);
sock_number = *(int *)sock_file_num;
child_thread_start = 1;
printf("broadcast\n");
pthread_cond_broadcast(&s_startupCond);
pthread_mutex_unlock(&s_startupMutex);
这里子线程明明广播了条件信号,为什么父线程还是一直阻塞等待呢,像是完全没有被唤醒
...全文
评论 9
收藏 已收藏
分享
返回顶部
yiqingyang2012
Linux/Unix社区 23,224 成员 74,535 内容