Linux 生产者、消费者之环形队列信号量
来源:互联网 发布:wifi无网络连接感叹号 编辑:程序博客网 时间:2024/05/29 05:12
一、环形队列实现生产者与消费者的互斥与同步
用sem_wait()、sem_post()实现二者的互斥与同步
二、接口
sem_tsem_init()sem_wait()sem_post()sem_destroy()
三、代码实现
#include <stdio.h>#include <semaphore.h>#include <pthread.h>#include <unistd.h>#define s 64sem_t blanks;sem_t datas;int ring[s];void* consumer(void* arg){ int i = 0; while(1) { sem_wait(&datas); int data = ring[i]; printf("consumer done ...%d\n",data); i++; i %= s; sem_post(&blanks); sleep(1); }}void* producter(void* arg){ int i = 0; while(1) { sem_wait(&blanks); int data = rand()%1234; ring[i] = data; printf("producter done ...%d\n",data); i++; i %= s; sem_post(&datas); }}int main(){ sem_init(&blanks,0,64); sem_init(&datas,0,0); pthread_t id1,id2; pthread_create(&id1,NULL,consumer,NULL); pthread_create(&id2,NULL,producter,NULL); pthread_join(id1,NULL); pthread_join(id2,NULL); sem_destroy(&blanks); sem_destroy(&datas); return 0;}
0 0
- Linux 生产者、消费者之环形队列信号量
- Linux基于单链表&环形队列的多线程生产者消费者模型
- 生产者---消费者模型之信号量
- 生产者-消费者-信号量-共享内存-循环队列
- 信号量实现环形buff下多生产者多消费者模型
- 用生产者消费者模型实现的线程安全环形队列
- 基于环形队列的单生产者单消费者模型
- 基于单链表以及环形队列的生产者消费者模型
- 基于环形队列的生产者消费者模型编写。
- 基于单链表和基于环形队列的生产者消费者模型
- 基于单链表和环形队列的生产者-消费者模型
- Linux信号量机制(生产者消费者)
- 信号量实现生产者消费者问题 window linux
- Linux信号量机制(生产者消费者)
- Linux信号量机制(生产者消费者)
- Linux信号量机制(生产者消费者)
- Linux下的信号量----生产者与消费者
- POSIX信号量之生产者消费者问题
- Java部分集合类内部数据结构简介
- 使用WebStorm上传本地项目到GitHub
- Linux下curses库的基本操作
- HDU4725(spfa+双端队列优化)
- js 取小数 .toFixed(n) 字符串转浮点数,判断整数
- Linux 生产者、消费者之环形队列信号量
- java -- 函数(方法)
- Number of Segments in a String
- 代码格式测试
- 离散化
- Visual Studio 常用的快捷键
- 进程结构信息task_struct剖析
- 百度人工智能的数据来源
- 使用Jersey创建RESTful服务