繁体   English   中英

如何在生成线程时运行 Rust 中的两个函数?

[英]How can I make two functions in Rust run upon spawning a thread?

在生成 Librarian 线程时,我想调用以下两个函数,但只调用了第一个 function。 有没有办法让两个函数都调用?

let Librarian = thread::spawn(move || {
    libReceiveOrder();
    libReceiveBooks();
});

据我了解,您想同时运行两个函数libReceiveOrderslibReceiveBooks 我可以向您推荐两种方法来完成这项工作。

A - 根据 function 使用单独的线程

这很简单。 只需再创建两个线程,一个用于libReceiveOrders ,另一个用于libReceiveBooks 这将使它们运行并使用队列。

这是完整的工作示例

B - 使用 tokio 的异步方法,尤其是 tokio::select!

这对两个函数都使用了一个线程tokio::select! 这简化了它们之间的同步,因为它们可以在没有Mutex的情况下轻松共享一些 state 。 但这也使您的代码更难扩展,因为这两项工作仅使用一个线程。 取决于你的目标,这里有什么更好的。

这是完整的工作示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM