【操作系统】实验 生产者-消费者问题解决方案
生活随笔
收集整理的這篇文章主要介紹了
【操作系统】实验 生产者-消费者问题解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
生產者-消費者問題
生產者-消費者問題,也稱有界緩沖問題,屬于操作系統進程同步的經典問題,在多線程并發編程中也是經典案例,值得去學習。
有一個生產者線程和一個消費者線程,生產者生產資源到資源緩沖區,消費者從資源緩沖區消費資源。資源緩沖區有界,空則不能取,滿則不能產。
但是我們要做到的是同步啊,所以可以用信號量來處理。
分析(含偽代碼)
這里給出了有限緩沖的通用結構,而不是只局限于某個特定實現。
假設緩沖池中有n個緩沖項,,每個緩沖項能存一個數據項。信號量mutex提供了對緩沖池訪問的互斥要求,并初始化為1。信號量empty和full分別用來表示空緩沖項和滿緩沖項的數量。信號量empty初始化為n;而信號量full初始化為0。
- N buffers
each can hold one item - Semaphore mutex
initialized to the value 1 - Semaphore full
initialized to the value 0 - Semaphore empty
initialized to the value N
The structure of the producer process :
whil總結
以上是生活随笔為你收集整理的【操作系统】实验 生产者-消费者问题解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【软件测试】结构化分支和循环语句的白盒测
- 下一篇: 【Python】Pandas加载并查询E