Asynchronous Rust中单线程异步应用程序的高效同步原语

Asynchronous Rust中单线程异步应用程序的高效同步原语,asynchronous,rust,rust-tokio,Asynchronous,Rust,Rust Tokio,我有一个基于单线程的异步应用程序,其中使用Arcs或其他Sync类型似乎是一种开销。因为线程之间不需要同步,所以我正在寻找类似的东西,Sender和Receiver,其中应该是!同步,并可包装成Rc而不是Arc 是否有任何巧尽心思构建的同步原语可在中使用 Rust中的单线程异步应用程序?您可以查看中的各种本地类型。例如,不需要互斥锁。我不确定您是否了解所指的同步工具Arc通常开销很低-它只是一个引用计数的智能指针,唯一的开销是克隆/删除时的原子增量/减量。除非在热循环中创建它们,否则不会对性能产

我有一个基于单线程的异步应用程序,其中使用
Arc
s或其他
Sync
类型似乎是一种开销。因为线程之间不需要同步,所以我正在寻找类似的东西,
Sender
Receiver
,其中应该是
!同步
,并可包装成
Rc
而不是
Arc

是否有任何巧尽心思构建的同步原语可在中使用
Rust中的单线程异步应用程序?

您可以查看中的各种
本地
类型。例如,不需要互斥锁。

我不确定您是否了解所指的同步工具<代码>Arc
通常开销很低-它只是一个引用计数的智能指针,唯一的开销是克隆/删除时的原子增量/减量。除非在热循环中创建它们,否则不会对性能产生太大影响。一次性通道在内部使用
Arc
,因此您不太可能通过使用它们而不是
Arc
@apetranzilla来提高性能。好吧,热循环是一种非常可能的使用情况,如果我不需要它们,为什么要为原子操作付费?我们不能提供任何建议,除非看到更多的使用情况。你有一些示例代码吗?@apetranzilla当然有。我将制作简短的示例来演示问题并更新问题(这可能需要一些时间)@kmdreko Tokio也有我正在成功使用的软件包。谢谢,这是您编写的一个非常有趣的软件包!我计划稍后做一些测试和比较,并更新问题以公布结果。