7

这个问题不再相关:Rust green threading 不见了。所有的任务都对应一个线程。

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

我正在通过 FFI 调用一些会阻塞的代码,并且我将在一个紧密的循环中执行它。

如何在其自己的操作系统线程上生成任务?

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

4

1 回答 1

13

使用std::task::spawn_sched,您可以在新的单线程调度程序上生成任务,该调度程序将在其自己的操作系统线程上运行。

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

do spawn_sched(SingleThreaded) {

    // This runs in its own OS thread

}
于 2013-11-12T09:44:12.150 回答