Linux下pthread_cond_wait()多线程同步实例
来源:互联网 发布:山东塑胶跑道标准数据 编辑:程序博客网 时间:2024/06/15 07:17
使用pthread_cond_wait()函数进行多线程同步。
一般与pthread_mutex_t 互斥锁一起使用。
下面是简单demo,主线程每2秒让子线程运行5次。
#include <stdint.h>#include <semaphore.h>#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <string.h>pthread_mutex_t lock;pthread_cond_t cond;int num = 0;void *func(void *arg){ while(1) { while(num <= 0) { pthread_mutex_lock(&lock); printf("wait do something....\n"); pthread_cond_wait(&cond,&lock); pthread_mutex_unlock(&lock); } //do something.... printf("hello world...\n"); pthread_mutex_lock(&lock); num --; pthread_mutex_unlock(&lock); usleep(100000); }}int main(){ pthread_t ps; //初始化 pthread_mutex_init(&lock,NULL); pthread_cond_init(&cond, NULL); //创建线程 pthread_create(&ps,NULL,func,NULL); while(1) { //修改全局变量值,使func线程解除阻塞等待 pthread_mutex_lock(&lock); num = 5; pthread_cond_signal(&cond); pthread_mutex_unlock(&lock); sleep(2); } return 0;}
0 0
- Linux下pthread_cond_wait()多线程同步实例
- [Linux]多线程同步之pthread_cond_wait()学习笔记
- pthread_cond_wait多线程同步
- linux多线程函数pthread_cond_wait
- Linux下的多线程同步编程入门实例
- linux多线程 pthread_cond_wait() 函数
- Linux下多线程实例
- linux 下的多线程同步
- linux 多线程 pthread_cond_wait(&cond,&mutex)理解
- 多线程间的同步-pthread_cond_wait、pthread_cond_signal的用法
- linux下多线程编程实例
- linux下多线程编程实例
- linux下实现多线程同步(一)
- Linux下多线程同步对象Mutex
- 嵌入式 linux下多线程同步问题
- Linux下多线程实现以及线程同步
- Linux下多线程的同步机制
- linux下C语言多线程编程实例
- 第八章 异常
- 关系模型基础
- HAAR、LBP分类器训练
- CF#803 A. Maximal Binary Matrix(贪心)
- MySQL日记——Explain详细介绍
- Linux下pthread_cond_wait()多线程同步实例
- 51nod 1010 只包含因子2 3 5的数【打表+二分】
- Microsoft 宣布今年底关闭开源软件托管平台 CodePlex
- 面向对象的陷阱——native方法的陷阱
- bzoj 1192: [HNOI2006]鬼谷子的钱袋 (数论)
- Linux curses库使用
- Oracle 查询日期显示年月日时分秒格式
- 图解分布式增删改查
- 1079[bzoj]: [SCOI2008]着色方案