这个问题不再相关:Rust green threading 不见了。所有的任务都对应一个线程。
Rust 任务在运行时管理的线程池中运行。
我正在通过 FFI 调用一些会阻塞的代码,并且我将在一个紧密的循环中执行它。
如何在其自己的操作系统线程上生成任务?
两个问题是线程在其线程上保持调度,并且工作窃取调度程序不会为该线程带来额外的工作。
这个问题不再相关:Rust green threading 不见了。所有的任务都对应一个线程。
Rust 任务在运行时管理的线程池中运行。
我正在通过 FFI 调用一些会阻塞的代码,并且我将在一个紧密的循环中执行它。
如何在其自己的操作系统线程上生成任务?
两个问题是线程在其线程上保持调度,并且工作窃取调度程序不会为该线程带来额外的工作。
使用std::task::spawn_sched,您可以在新的单线程调度程序上生成任务,该调度程序将在其自己的操作系统线程上运行。
use std::task::{spawn_sched, SingleThreaded};
do spawn_sched(SingleThreaded) {
// This runs in its own OS thread
}