gpt4 book ai didi

multithreading - 交叉波束零容量信道在发送时不阻塞

转载 作者:行者123 更新时间:2023-12-03 11:42:49 24 4
gpt4 key购买 nike

我需要Crossbeam的零容量 channel crossbeam_channel::bounded(0) 的变体,如果没有接收操作,它不会在send()上阻塞。在我的情况下,在没有正在进行接收操作的情况下发送的消息可以被丢弃。接收方开始收听后将接收所有发送的消息。这与Redis channel 类似,但在线程之间。
这样的事情是否已经存在,还是我需要自己实现?目前,我尚不清楚如何实现这种功能,但是我可能可以从研究有限的零容量 channel 的实现开始,并可能将非阻塞发送操作替换为非阻塞版本。

最佳答案

所有的交叉光束 channel 也都提供了send()方法的非阻塞版本。它称为 try_send() ,如果无法发送消息,它将返回一个错误。对于容量为零的 channel ,这将完全导致您要求的行为–仅在“如果同时在 channel 另一侧进行接收操作”时才发送消息(引用文档) 。

关于multithreading - 交叉波束零容量信道在发送时不阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64023168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com