如何用rust实现一个异步channel
原文中文,约4500字,阅读约需11分钟。发表于: 。@TOC 前言 使用通信来共享内存,而不是通过共享内存来通信 上面这句话,是每个go开发者在 处理多线程通信时 的座右铭,go甚至把实现这个理念的channel直接焊在编译器里,几乎所有的go程序里都有channel的身影。 rust的异步和go的goroutine有异曲同工之妙,甚至可以把 tokio::spawn...
本文介绍了实现类似go的channel的过程,并与async-channel进行了性能比较。作者通过自己实现一个存放值的环形缓冲区和任务队列来实现通信共享内存。性能测试结果显示,在发送者和接收者数量不等的情况下,wd_tools::channel的性能优于async-channel。文章还提到了异步环境下的一些考虑因素。