3

Channel.CreateUnbounded的文档说:

创建可供任意数量的读取器和写入器同时使用的无界通道。

但是Channel具有单个ChannelReaderChannelWriter唯一的属性,并且似乎没有一种方法可以围绕现有通道显式创建读取器/写入器。

我曾想过,如果您有多个生产者/消费者,他们应该共享同一个作者/读者实例,这是不正确的吗?“读者/作者的数量”是在谈论并发访问而不是类实例的数量吗?

4

1 回答 1

5

是的,文档意味着多个生产者(作者)和消费者(读者)。所有生产者都可以使用ChannelWriter通道的单,所有消费者都可以使用它的单ChannelReader。不需要外部同步。该类Channel<T>是 100% 线程安全的。

重要提示:在有多个消费者的情况下,通过通道的每个项目将仅由一个消费者接收。Channel<T>不支持将一个元素传播给多个消费者,例如数据BroadcastBlock<T>流块。

于 2020-05-22T17:46:00.190 回答