c - 如果我从一个函数返回而不调用 pthread_mutex_unlock 会发生什么?

标签 c pthreads posix mutex

假设我锁定了一个名为 wfg

的互斥锁
pthread_mutex_lock(&wfg);
//and then I return from the function
return 0;

互斥体会保持锁定状态吗?

最佳答案

互斥锁保持锁定状态,直到从获得锁的线程调用 pthread_mutex_unlock。功能与它无关。你可以有类似的东西

pthread_mutex_t wfg;
...
void razzle()
{
   pthread_mutex_lock(&wfg);
}

void dazzle()
{
  pthread_mutex_unlock(&wfg);
}

...
razzle();
... do stuff ...
dazzle();

那会很好(但很愚蠢)。

关于c - 如果我从一个函数返回而不调用 pthread_mutex_unlock 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4774332/

相关文章:

c - c 中结构的大小等于 1

C 程序中的编译错误返回整数输入序列中出现次数最多的整数

c - 一个进程占用信号量

c - inet_ntop 的第二个参数的正确类型/格式是什么?

c - 从线程外部修改线程数据

c - 传递给某些函数后指针消失(即使使用 malloc)

C - 循环次数减少的冒泡排序

c - 在 Ubuntu 上编译 C 时没有输入文件或 undefined reference

c++ - 生产者-消费者问题

c - 使用互斥锁使线程退出是不好的做法吗?