CSP并发模型
? ? ??不同于傳統的多線程通過共享內存來通信,CSP講究的是“以通信的方式來共享內存”。用于描述兩個獨立的并發實體通過共享的通訊 channel(管道)進行通信的并發模型。 CSP中channel是第一類對象,它不關注發送消息的實體,而關注與發送消息時使用的channel
? ? ? ?Golang中channel 是被單獨創建并且可以在進程之間傳遞,它的通信模式類似于 boss-worker 模式的,一個實體通過將消息發送到channel 中,然后又監聽這個 channel 的實體處理,兩個實體之間是匿名的,這個就實現實體中間的解耦,其中 channel 是同步的一個消息被發送到 channel 中,最終是一定要被另外的實體消費掉的,在實現原理上其實類似一個阻塞的消息隊列
總結
- 上一篇: 无缓冲channel
- 下一篇: golang协程特点