新手練習-消費者生產者模型
package main
import (
"fmt"
"math/rand"
"sync"
)
func main() {
c := sync.NewCond(&sync.Mutex{})
queueList := make(chan int, 10)
//producer
go func() {
for {
c.L.Lock()
if len(queueList) == 5 {
c.Wait()
}
num := rand.Intn(100)
fmt.Println("Producer:", num)
queueList <- num
if len(queueList) == 5 {
c.Signal()
}
c.L.Unlock()
}
}()
//consumer
go func() {
for {
c.L.Lock()
if len(queueList) == 0 {
c.Wait()
}
num := <- queueList
fmt.Println("consumer:", num)
if len(queueList) == 0 {
c.Signal()
}
c.L.Unlock()
}
}()
for {
;
}
}
相關文章
- 生產者消費者模型模型
- 生產者消費者
- Qt基於QSemaphore的生產者消費者模型QT模型
- 使用Disruptor實現生產者和消費者模型模型
- 鎖,threading local,以及生產者和消費者模型thread模型
- 生產者消費者模式模式
- python 生產者消費者模式Python模式
- 生產消費者模式模式
- C++ condition_variable 實現生產者消費者模型C++模型
- 九、生產者與消費者模式模式
- 生產者與消費者問題
- ActiveMQ 生產者和消費者demoMQ
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- 生產者與消費者之Android audioAndroid
- linux 生產者與消費者問題Linux
- Java實現生產者和消費者Java
- 阻塞佇列和生產者-消費者模式佇列模式
- java實現生產者消費者問題Java
- 讀者寫者與生產者消費者應用場景
- C#多執行緒學習(三) 生產者和消費者C#執行緒
- python中多程式消費者生產者問題Python
- 使用BlockQueue實現生產者和消費者模式BloC模式
- java編寫生產者/消費者模式的程式。Java模式
- Java多執行緒——生產者消費者示例Java執行緒
- 併發設計模式---生產者/消費者模式設計模式
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- PHP操作Beanstalkd佇列(2)生產者與消費者PHPBean佇列
- golang 併發程式設計之生產者消費者Golang程式設計
- 「Kafka應用」PHP實現生產者與消費者KafkaPHP
- 用Go語言 實現一個簡單生產者消費者模型 ,如何做?Go模型
- 2.Python程式間的通訊之佇列(Queue)和生產者消費者模型Python佇列模型
- python中多執行緒消費者生產者問題Python執行緒
- 多生產者-消費者中假死現象的處理
- 插曲:Kafka的生產者案例和消費者原理解析Kafka
- 作業系統—生產者消費者問題詳解作業系統
- 使用wait()與notifyAll()實現生產者與消費者模式AI模式
- 生產者消費者問題-C++程式碼實現C++