问题标签 [tokio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3781 浏览

rust - 异步块创建的未来不是“发送”

我能够继续实现我的异步 udp 服务器。但是,我有两次出现此错误,因为我的变量数据的类型*mut u8不是Send

和代码(MRE):

由于我正在从同步代码转换为异步代码,因此我知道多个线程可能会写入数据,这可能就是我遇到此类错误的原因。但是我不知道我可以使用哪种语法来“克隆” mut ptr 并使其对每个线程都是唯一的(对于缓冲区也是如此)。

正如user4815162342所建议的那样,我认为最好的是

通过将指针包装在结构中并为 NewStruct {} 声明不安全的 impl Send 来使指针发送。

任何帮助都非常感谢!

PS:完整代码可以在我的github 仓库中找到

0 投票
1 回答
133 浏览

multithreading - Tokio 服务器在过热后被杀死

我正在监听 udp 数据包,一旦第一个数据包到达,我就开始监听更多数据包。

如果收到一个数据包,则服务器将开始全速运行(即使应该有延迟let duration = Duration::from_millis(1300);?),并最终被杀死

MVE代码如下:

服务器.rs

client.rs(用于测试目的)

输出(从客户端发送 10 个数据包,其中第一个字节范围从 0 到 9,注意:我现在只是想让它工作,我知道缓冲区溢出):

我不知道如何在不被杀死的情况下保持服务器平稳运行,非常感谢任何帮助。

0 投票
1 回答
207 浏览

multithreading - tokio什么时候产生线程?

如果我的代码有

全局只读变量的突变会在 Tokio 设置其线程池之前还是之后发生?

0 投票
1 回答
86 浏览

rust - 如何使用 tokio、async-std 并行化几分钟

我想使用 tokio 或 async-std 在多线程中执行以下处理。我已经阅读了关于 tokio 和 async-std 的教程,但我认为没有提到并行化 for。在这个过程中,所有线程都引用同一个数组索引。此外,所有线程都将访问同一数组的不同位置。

我想将上述代码的部分更改为并行处理。

0 投票
2 回答
233 浏览

rust - 如何在 Vec 等容器中管理 tokio oneshot::channel?

我想用一个容器来管理tokio::oneshot::Senders。我正在使用Vec,但似乎保存的值Vec是引用,我需要使用self,而不是引用来调用它:

错误:

我怎样才能实现我的目标?

0 投票
1 回答
1019 浏览

asynchronous - 使用 Tokio 轮询未来的最小功能集是什么?

我想轮询一个异步函数:

我目前正在激活所有功能:

其中哪些是必要的?

0 投票
1 回答
168 浏览

loops - 当任何任务正在运行时,如何阻止异步程序终止?

假设我有这样的事情,

如果我这样称呼它,就像do_update().await循环永远运行一样。这就是我想要的。但我不希望它成为唯一运行的东西。我只是希望它阻止终止,直到任务解决。

我希望一个事件每 5 秒运行一次,而不会阻塞程序的其余部分。如果我把它放在程序的末尾,这完全符合我的要求。似乎这曾经完成过shutdown_on_idle,但现在提供的解决方案对我无效,原因与此评论相同,

我不能那样实现它,因为我在另一个任务中产生。

在任务产生任务的系统中,我如何确保只有在没有更多任务运行时才关闭可执行文件?

0 投票
0 回答
197 浏览

asynchronous - 使用tokio spawn速度和单线程一样快,正确的tokio spawn方式

我想写一个关于如何像蜘蛛一样访问互联网的程序。我使用tokio::spawn想让每个 url 在获取时都异步。当我在循环中使用 tokio reqwest 时,这似乎与单线程。Rust async 与 js 不同。我不太明白它是如何工作的。我已经考虑了很多天。我问了公众。这是代码。

我像这样更改代码。但是速度的提高仍然很小。

0 投票
0 回答
39 浏览

rust - 是否可以在没有异步的情况下在 rust 中使用 .await 函数?

我正在使用rust 进行异步处理,而在 rust 中,我正在调用使用andtokio进行异步处理的函数,但是我可以以某种方式包装这些函数并在没有 的函数中调用它们吗?下面是我想做的伪代码。async.awaitasync

0 投票
0 回答
94 浏览

rust - 在 rust 中等待后不执行函数

我运行了如下所示的代码。但是,我认为所做的部分并没有tokio.spawn被执行。尽管我.await在调用该函数时仍然如此。我怎样才能解决这个问题?