新手練習-消費者生產者模型
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 {
;
}
}
相關文章
- 生產者消費者模型模型
- Java實現生產者-消費者模型Java模型
- 生產者消費者模式模式
- Qt基於QSemaphore的生產者消費者模型QT模型
- 使用Disruptor實現生產者和消費者模型模型
- JAVA執行緒消費者與生產者模型Java執行緒模型
- 生產消費者模式模式
- Java多執行緒14:生產者/消費者模型Java執行緒模型
- 九、生產者與消費者模式模式
- python 生產者消費者模式Python模式
- ActiveMQ 生產者和消費者demoMQ
- 鎖,threading local,以及生產者和消費者模型thread模型
- C++ condition_variable 實現生產者消費者模型C++模型
- Java實現生產者和消費者Java
- 生產者和消費者(.net實現)
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- Java多執行緒-併發協作(生產者消費者模型)Java執行緒模型
- java實現生產者消費者問題Java
- 阻塞佇列和生產者-消費者模式佇列模式
- linux 生產者與消費者問題Linux
- 多執行緒之生產者消費者執行緒
- 直觀理解生產者消費者問題
- Java 生產者消費者模式詳細分析Java模式
- 讀者寫者與生產者消費者應用場景
- Java多執行緒——生產者消費者示例Java執行緒
- 生產者與消費者之Android audioAndroid
- java編寫生產者/消費者模式的程式。Java模式
- 併發設計模式---生產者/消費者模式設計模式
- 使用BlockQueue實現生產者和消費者模式BloC模式
- Python中的生產者消費者問題Python
- C#多執行緒學習(三) 生產者和消費者C#執行緒
- C# 多執行緒學習(3) :生產者和消費者C#執行緒
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- python中多程式消費者生產者問題Python
- 「Kafka應用」PHP實現生產者與消費者KafkaPHP
- 架構設計:生產者/消費者模式[0]:概述架構模式
- golang 併發程式設計之生產者消費者Golang程式設計