在Rust中,如何创建在自己的OS线程中运行的任务?

McP*_*inM 7 multithreading task rust

这个问题已不再适用:锈绿色线程已经消失.所有任务都对应一个线程.

Rust任务在运行时管理的线程池中运行.

我通过将阻止的FFI调用一些代码,我将在紧密的循环中执行它.

如何在自己的OS线程上生成任务?

这两个问题是线程在其线程上保持调度,并且工作窃取调度程序不会在此线程上带来额外的工作.

Zar*_*ony 13

使用std :: task :: spawn_sched,您可以在将在其自己的OS线程上运行的新的单线程调度程序上生成任务.

use std::task::{spawn_sched, SingleThreaded};

do spawn_sched(SingleThreaded) {

    // This runs in its own OS thread

}
Run Code Online (Sandbox Code Playgroud)