1.进程合作:多进程共同完成一个任务
1.1 司机与售票员
// 司机
while(true)
{
//等待售票员关门的信号
启动车辆;
正常运行;
到站停车;
}
//售票员
while(true)
{
关门;
售票;
//等待司机到站停车的信号
开门;
}
1.2 打印机
打印机按照打印队列执行打印,当打印队列中有 6个打印任务,2个进程同时添加打印任务,打印队列的第7个任务是哪个,需要协调
小结
进程有自己的执行条件,有时执行 有时等待,执行完 可能也要 发出信号,让等待该信号的其他进程执行
进程同步 就是 进程有序的执行
1.3 生产者—消费者实例
//共享数据
#define BUFFER_SIZE 10 //缓存空间
typedef struct{...} item;
item buffer[BUFFER_SIZE];
int in = out = counter = 0;
//生产者进程
while(true){
//当产品 counter == BUFFER_SIZE 就不再生产了,缓存区满,生产者停
while(counter == BUFFER_SIZE)
;