首先,如下图,channel的数据是保存在一个环形链表里的,前面一边写入数据,后面一边删除数据。
其次,有一个读取数据的协程队列和一个写入数据的协程队列。用于记录有哪些协程正在休眠等待向管道接收或写入数据
然后有个锁,是在写入和读取数据时用的。
最后,就是有个closed状态量,用来表示channel是否关闭。
所以,channel的简单结构图如下
首先,如下图,channel的数据是保存在一个环形链表里的,前面一边写入数据,后面一边删除数据。
其次,有一个读取数据的协程队列和一个写入数据的协程队列。用于记录有哪些协程正在休眠等待向管道接收或写入数据
然后有个锁,是在写入和读取数据时用的。
最后,就是有个closed状态量,用来表示channel是否关闭。
所以,channel的简单结构图如下