Go语言实现多生产者多消费者模型

发表时间: 2023-12-08 10:15

哈喽大家好,我叫曹伟。这期视频来介绍公浪,来实现多生产者、多消费者消费模型的。这个是定缓冲的通道,因为消费者跟生产者的通信,大家定变量也是一个通道,用于通知主线层是否已经消费完成。

下面启动这两个携程,这边会发生阻塞,为什么?因为这边内存空间是为零的,内存空间为零代表里面是什么?内存空间为零,而且没有写过数据,这边会发生阻塞。跟展瓦不同的是,展瓦的主线层是不会运行的,如果启动子线层,主线层不会运行。

但是勾勒就不一样,子线层运行的时候主线层也会跟着运行,所以要建议通道对它进行阻塞处理。下面就启动这两个携程,这边会持续写用,而这边会持续便利输出。当写用一的时候,这边会输出五一,然后就输出生产者生产一个,而这里消费者消费一。

通道没有关闭,这边会不断的进行便利,哪怕通道里面没有写过数据,也会无限的便利,相当一个死循环,求把通道给关闭掉。这边选用五个数字的时候就把通道关闭了,一旦关闭,病例就会停止了。一段关闭的时候,这边没有数据,便利就会停止。

停止之后再写一个数据,写一个数据时候内存空间会扩展为一,而且里面会有数据,要走线程的接收到数据,要再次手术。