- 121
- 0
- 约1.29万字
- 约 64页
- 2016-08-23 发布于河南
- 举报
有界缓冲区
7.1 背景 背景 要保持数据的一致性,就需要一种保证并发进程的正确执行顺序的机制 第4章中解决有限缓冲区问题的共享内存方法… 假定我们通过增加一个计数器变量修改生产者-消费者代码,初始值为 0,在缓冲区增加一个项目(数据)计数器加1 有界缓冲区 Shared data #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; int counter = 0; 有界缓冲区 生产者进程 item nextProduced; while (1) { while (counter == BUFFER_SIZE) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; counter++; } 有界缓冲区 消费者进程 item nextConsumed; while (1) { while (counter == 0) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; co
原创力文档

文档评论(0)