linux网络编程之POSIX条件变量
2013-09-26 15:19
60 查看
条件变量:
当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。
例如一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列中。这种情况就需要用到条件变量。
条件变量函数:
pthread_cond_init
pthread_cond_destroy
pthread_cond_wait
pthread_cond_signal
pthread_cond_broadcast
条件变量使用规范:
等待条件代码
pthread_mutex_lock(&mutex);
while(条件为假)
pthread_cond_wait(cond, mutex);
修改条件
pthread_mutex_unlock(&mutex);
给条件发送信号代码
pthread_mutex_lock(&mutex);
设置条件为真
pthread_cond_signal(cond);
pthread_mutex_unlock(&mutex);
当一个线程互斥地访问某个变量时,它可能发现在其它线程改变状态之前,它什么也做不了。
例如一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列中。这种情况就需要用到条件变量。
条件变量函数:
pthread_cond_init
pthread_cond_destroy
pthread_cond_wait
pthread_cond_signal
pthread_cond_broadcast
条件变量使用规范:
等待条件代码
pthread_mutex_lock(&mutex);
while(条件为假)
pthread_cond_wait(cond, mutex);
修改条件
pthread_mutex_unlock(&mutex);
给条件发送信号代码
pthread_mutex_lock(&mutex);
设置条件为真
pthread_cond_signal(cond);
pthread_mutex_unlock(&mutex);
相关文章推荐
- Proxy源代码分析--谈谈如何学习linux网络编程(转载,又一篇很好的文章)
- Linux网络编程
- Linux网络编程基础(三)
- Linux网络编程一步一步学-客户端和服务器端互相收发消息
- linux网络编程笔记——socket基本结构
- Linux网络编程
- LINUX网络编程的读书笔记
- Linux网络编程一步一步学-异步通讯聊天程序select
- Linux网络编程一步一步学-UDP组播
- Linux网络编程--网络知识介绍
- Linux网络编程经典书籍推荐
- Linux网络编程
- Linux网络编程-- 服务器模型
- LINUX网络编程之套接字
- Linux网络编程必看书籍推荐
- Linux网络编程
- Linux网络编程epoll模型
- Linux网络编程(三) IO非阻塞操作 .
- linux网络编程系列-select和epoll的区别
- linux网络编程之socket(二):C/S程序的一般流程和基本socket函数