Go红队开发—并发编程
目录[*]并发编程
[*]go协程
[*]chan通道
[*]无缓冲通道
[*]有缓冲通道
[*]创建⽆缓冲和缓冲通道
[*]等协程
[*]sync.WaitGroup同步
[*]Runtime包
[*]Gosched()
[*]Goexit()
[*]区别
[*]同步变量
[*]sync.Mutex互斥锁
[*]atomic原子变量
[*]Select
[*]Ticker定时器
[*]控制并发数量
[*]核心机制
[*]并发编程阶段练习
[*]重要的细节
[*]端口扫描
[*]股票监控
并发编程
go协程
chan通道
必要条件:
从通道取元素的时候要先关闭通道,程序才知道你不往通道输入了,才能取出元素来进行操作,否则会由于通道没有被关闭,range 操作会一直等待新的数据到来,导致程序陷入死锁状态。
close关闭通道不是必要的,但是如果你不关闭,还一直读取内里的东西的话, 你要保证你有源源不断的内容进入到通道中不能让他处于死锁状态。
//在go中的通道var 变量名 = make(chan 范例)var c = make(chan int)//通道可以给许多数据,取出来的时候可以一个个的pop一样,每次取一个就pop一个c
页:
[1]