C++中,为什么执行pthread_mutex_lock()时执行了两次线程才被阻塞?

狂烂球 2005-11-30 04:52:13
在线程函数里,
执行了两次pthread_mutex_lock,线程才被阻塞,请问是什么原因?

pthread_mutex_init(&mutex,NULL);

void *threadfunc()
{
......
while(1)
{
pthread_mutex_lock(&mutex);
......
}

}
int main()
{
pthread_create();
......
pthread_mutex_unlock(&mutex);
}
在这里,执行了两次才被阻塞,请问是什么原因呢?
...全文
731 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tb01412 2005-11-30
  • 打赏
  • 举报
回复
在各个线程中,全局变量是共享的,也就是说你的那个互斥变量是各个线程共享的,你的问题的原因如楼上所说
baoyuhua 2005-11-30
  • 打赏
  • 举报
回复
你在线程函数里lock后又在主进程里unlock,自然就被解锁了

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧