海瑞博客

go 语言之 生产者消费模型

简易的生产者消费模型,通过管道【也可以理解为队列】,管道是先进先出,主要是理解chan 

 生产者使用make将chan初始化,并且设置chan长度,如果不设置,生产者就写入不了通道

go 是使用线程开始,并且使用多核(这个感觉会比python好)

欢迎大家一起指导学习

 

package main

import (
	"fmt"
	"time"
)

var Foo chan string

func main()  {
	Foo = make(chan string,10)
	go makefoo()
	go eatFoo()
	time.Sleep(time.Hour)
}

func makefoo()  {
	i := 0
	for{
		i ++
		foo :=  fmt.Sprintf("包子%d号",i)
		Foo <- foo
		fmt.Println("Alex生产驴肉馅的",foo)
		time.Sleep(time.Second * 1)
	}
}

func eatFoo()  {
	for{
		data := <- Foo
		fmt.Println("瞎驴吃了:",data)
		time.Sleep(time.Second * 3)
	}
} 

  

  

 

海瑞博客

posted @ 2018-06-20 14:00  海瑞PYthon  阅读(383)  评论(0编辑  收藏  举报
海瑞博客