golang编写一个简单的生成消费模式
来源:互联网 发布:windows定时启动程序 编辑:程序博客网 时间:2024/06/08 02:23
生成消费模式大家在现实生活中经常遇到,如果使用java编写可以使用阻塞队列如BlockingQueue,Python也有相应的组件,如果使用golang编写使用自带的channel管道更加简单。
下面直接看代码:
package mainimport "fmt"func consumer(ch chan int,done chan string) { for i := range ch{ fmt.Println("recive",i) } done<-"ok"}func product(ch chan int) { for i := 0; i<5; i++{ ch<-i } close(ch)}func main() { fmt.Println("start") ch := make(chan int) done := make(chan string) go consumer(ch,done) go product(ch) <-done}
代码非常简单,分别用goroutine启动两个协程:生产和消费。共享ch,一个往管道中写数据一个往管道中读数据,done是为了让主进程等待消费者结束。
0 0
- golang编写一个简单的生成消费模式
- 一个简单linux和window下的生成、消费模型类
- 用golang编写简单的Echo Server
- 线程的简单生产消费模式
- 一个简单的单例模式 类的编写
- golang入门--一个简单的http client
- Golang编写简单图片服务器
- 一个简单GOLANG路由
- 简单生产消费模式的代码流程(Java代码)
- 一个简单木马程序的编写
- 编写一个简单的配置文件
- 编写一个简单的shell
- 编写一个简单的shell
- 编写一个简单的等腰三角形
- 整理修改的一个日志类,用生产与消费模式实现,消费模式用了异步执行
- 一个简单的Golang实现的HTTP Proxy
- 一个简单的Golang实现的Socks5 Proxy
- golang笔记(2)写一个简单的socket服务端
- 与MVC框架解耦的OGNL:前世今生及其基本用法
- poj 1062(Kuangbin最短路专题M题)
- 有关数组的运算z
- 等待一个邮箱中的消息,OSMboxPend()
- Arraylist,Vector,LinkedList的存储性能和特性
- golang编写一个简单的生成消费模式
- 文章标题
- 历届试题 最大子阵 蓝桥杯
- wamp修改 htttp.conf路径后手机通过IP访问
- Binary298FindTheDuplicatedNumber
- ionic 编译过程中报Could not reserve enough space for xxxxxxkb object heap
- 与成功学大师对话
- git基本
- [系列]OS学习-自己写操作系统(2)- bochs的使用注意