c - 线程休眠时释放锁
问题描述
线程休眠时如何释放线程锁?
当我调用 pthread_join() 时,它会运行得很好,但是我必须创建多个线程,并且由于它们的并发性,我不能调用 pthread_join()。如何在不调用 join 的情况下解决此问题。
pthread_mutex_t mut1;
pthread_mutex_init(&mut1, NULL);
void* funA(void* arg){
while(pthread_mutex_trylock(&mut1) != 0);
sleep(10);
// resources sharing
pthread_mutex_unlock(&mut1);
pthread_exit(NULL);
}
int main(){
pthread_t id[9];
for(int i = 0; i<9; i++){
pthread_create(&id[i], NULL, &funA, NULL);
}
}
解决方案
推荐阅读
- javascript - 框未在画布 Javascript 上显示
- android - MediaPlayer 无法在 OnePlus 上运行 - 为什么?
- java - 如果 --describe-module 不起作用,如何在 Java11 模块中使用 3rd 方库?
- search - Grep 多个文本文件,每个文件在新行中输出
- c - 为什么 make 重新编译这个 makefile 中的所有内容?
- css - css网格根据页面更改布局
- bash - Linode Lish bash:警告:setlocale:LC_ALL:无法更改语言环境(en_US.UTF-8)
- c - 分支到 PendSV 时覆盖数据
- javascript - 使用 npm exiftool (javascript) 异步问题
- c# - 我在我的一个网络表单上添加了一个 CSS,但它只适用于我的母版页,而不适用于特定的网络表单