go channel 概述

Posted perfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go channel 概述相关的知识,希望对你有一定的参考价值。

精髓

将资源读进内存-->共享内存,一个个进程/线程进行处理,这是常见模式。go channel 是一种直接在进程/线程之间传递资源的方式,即以通信来共享内存。这便是go的精髓。

 

定义

chan T      双向

chan<-T   只发送

<- chan T 只接收

通道类型,也是引用类型,零值为nil

 

特性

同一时刻,仅有一个goroutine可以向该通道发送元素值,同时也仅有一个goroutine可以从该通道接收元素值。

通道中的元素值,严格按发送到该通道的先后顺序排列,最先发送到的元素值,一定最先被接收。等效于先进先出的消息队列。

通道中的元素值,具有原子性,不可被分割;每个元素值只能被一个goroutine接收,被接收后,立刻从通道中清除。

 

通道初始化

make(chan int)

初始化一个可以接收、发送int值类型的通道,无缓冲

 

 

 

 

 

未完.....

以上是关于go channel 概述的主要内容,如果未能解决你的问题,请参考以下文章

go进阶 -深入理解Channel实现原理

2021-GO语言并发编程

2021-GO语言并发编程

Go channel 实现原理分析

Go入门: 浅谈channel

Go语言channel