UnixLinux核心编程精简讲课文档.pptVIP

  • 1
  • 0
  • 约5.77万字
  • 约 369页
  • 2021-12-10 发布于广东
  • 举报
生产者/消费者问题—解题思路(续) 生产者/消费者进程之间的同步通信协调 生产者进程 消费者进程 1、调用pthread_mutex_lock()对lock上锁,并根据以下条件判断缓冲区是否已满; (writepos + 1) % BUFSIZE == readpos 2、若满,调用ptread_cond_wait()进入阻塞,等待notfull条件变量; 3、写入数据并移动写指针writepos; 4、调用pthread_cond_signal()向消费者信号通过notempty条件变量; 5、调用pthread_mutex_unlock()对mutex解锁。 1、调用pthread_mutex_lock()对lock上锁,并根据以下条件判断缓冲区是否为空; writepos == readpos 2、若空,调用ptread_cond_wait()进入阻塞,等待notempty条件变量; 3、读取数据并移动读指针readpos; 4、调用pthread_cond_signal()向消费者信号通过notfull条件变量; 5、调用pthread_mutex_unlock()对mutex解锁。 第二百八十一页,共369页。 生产者/消费者问题—解决方案 主程序启动生产者/消费者线程 生产者线程顺序地将0 到1000写入循环缓冲区 消费者线程不断地从共享的循环缓冲区读取数据 第二百八十

文档评论(0)

1亿VIP精品文档

相关文档