举例来说,这边从某处读取数据到缓冲区,那边将缓冲区数据进行处理。
pthread_cond_t data_cond;
pthread_mutex_t data_mutex;
#define DATA_SIZE 4096
int data_flag = 0;
int data_size = 0;
char data_buffer[DATA_SIZE];
void read_to_databuffer()
{
//init fd
while (1)
{
//已读取的数据还没有被处理,等待。或者用另外的条件锁?
while (data_flag == 1)
{
usleep(1000);
continue;
}
pthread_mutex_lock(&data_mutex);
data_size = read(fd, data_buffer, DATA_SIZE);
//已经没有数据,中断。
if (data_size
关注
打赏
热门博文
- 历史最高名次:17
- 日常收集的妙语
- git更新:Your local changes to the following files would be overwritten by merge
- Github通过PR提交代码到开源库
- Github参与OpenJDK8的开发指南
- FreeType可以指定斜体值了!祝贺修改代码整合进入FreeType
- JDK/FreeType中关于斜的英文有哪些
- WINDOWS编译ffmpeg:LINK : fatal error LNK1104: 无法打开文件“LIBCMT.lib”
- 全网首发:编译ffmpeg: error: ‘VFW_E_NOT_FOUND‘ undeclared ; did you mean ‘NTE_NOT_FOUND‘?
- WINDOWS+VS2012+msys2编译ffmpeg成功,DLL不能用