南飓风 发表于 3 天前

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]
查看完整版本: Go红队开发—并发编程