问题标签 [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.
rust - 异步块创建的未来不是“发送”
我能够继续实现我的异步 udp 服务器。但是,我有两次出现此错误,因为我的变量数据的类型*mut u8
不是Send
:
和代码(MRE):
由于我正在从同步代码转换为异步代码,因此我知道多个线程可能会写入数据,这可能就是我遇到此类错误的原因。但是我不知道我可以使用哪种语法来“克隆” mut ptr 并使其对每个线程都是唯一的(对于缓冲区也是如此)。
正如user4815162342所建议的那样,我认为最好的是
通过将指针包装在结构中并为 NewStruct {} 声明不安全的 impl Send 来使指针发送。
任何帮助都非常感谢!
PS:完整代码可以在我的github 仓库中找到
multithreading - Tokio 服务器在过热后被杀死
我正在监听 udp 数据包,一旦第一个数据包到达,我就开始监听更多数据包。
如果收到一个数据包,则服务器将开始全速运行(即使应该有延迟let duration = Duration::from_millis(1300);
?),并最终被杀死
MVE代码如下:
服务器.rs
client.rs(用于测试目的)
输出(从客户端发送 10 个数据包,其中第一个字节范围从 0 到 9,注意:我现在只是想让它工作,我知道缓冲区溢出):
我不知道如何在不被杀死的情况下保持服务器平稳运行,非常感谢任何帮助。
multithreading - tokio什么时候产生线程?
如果我的代码有
全局只读变量的突变会在 Tokio 设置其线程池之前还是之后发生?
rust - 如何使用 tokio、async-std 并行化几分钟
我想使用 tokio 或 async-std 在多线程中执行以下处理。我已经阅读了关于 tokio 和 async-std 的教程,但我认为没有提到并行化 for。在这个过程中,所有线程都引用同一个数组索引。此外,所有线程都将访问同一数组的不同位置。
我想将上述代码的部分更改为并行处理。
rust - 如何在 Vec 等容器中管理 tokio oneshot::channel?
我想用一个容器来管理tokio::oneshot::Sender
s。我正在使用Vec
,但似乎保存的值Vec
是引用,我需要使用self
,而不是引用来调用它:
错误:
我怎样才能实现我的目标?
asynchronous - 使用 Tokio 轮询未来的最小功能集是什么?
我想轮询一个异步函数:
我目前正在激活所有功能:
其中哪些是必要的?
loops - 当任何任务正在运行时,如何阻止异步程序终止?
假设我有这样的事情,
如果我这样称呼它,就像do_update().await
循环永远运行一样。这就是我想要的。但我不希望它成为唯一运行的东西。我只是希望它阻止终止,直到任务解决。
我希望一个事件每 5 秒运行一次,而不会阻塞程序的其余部分。如果我把它放在程序的末尾,这完全符合我的要求。似乎这曾经完成过shutdown_on_idle
,但现在提供的解决方案对我无效,原因与此评论相同,
我不能那样实现它,因为我在另一个任务中产生。
在任务产生任务的系统中,我如何确保只有在没有更多任务运行时才关闭可执行文件?
asynchronous - 使用tokio spawn速度和单线程一样快,正确的tokio spawn方式
我想写一个关于如何像蜘蛛一样访问互联网的程序。我使用tokio::spawn想让每个 url 在获取时都异步。当我在循环中使用 tokio reqwest 时,这似乎与单线程。Rust async 与 js 不同。我不太明白它是如何工作的。我已经考虑了很多天。我问了公众。这是代码。
和
我像这样更改代码。但是速度的提高仍然很小。
rust - 是否可以在没有异步的情况下在 rust 中使用 .await 函数?
我正在使用rust 进行异步处理,而在 rust 中,我正在调用使用andtokio
进行异步处理的函数,但是我可以以某种方式包装这些函数并在没有 的函数中调用它们吗?下面是我想做的伪代码。async
.await
async
rust - 在 rust 中等待后不执行函数
我运行了如下所示的代码。但是,我认为所做的部分并没有tokio.spawn
被执行。尽管我.await
在调用该函数时仍然如此。我怎样才能解决这个问题?