Функция worker_ index
pub fn worker_index() -> Option<usize>
tokio_unstable и при включённой функции crate rt.Возвращает индекс текущего рабочего потока, если вызвана из рабочего потока среды выполнения.
Возвращаемое значение — индекс, начинающийся с 0, который соответствует индексам рабочих потоков, используемым такими методами RuntimeMetrics, как worker_total_busy_duration.
Возвращает None при вызове вне рабочего потока среды выполнения (например, из блокирующего потока или потока, не относящегося к Tokio). В многопоточной среде выполнения поток, вызывающий Runtime::block_on, не является рабочим потоком, поэтому здесь также возвращается None.
Для среды выполнения с текущим потоком и LocalRuntime всегда возвращается Some(0) (в том числе внутри block_on, поскольку вызывающий поток и есть рабочий поток).
Обратите внимание, что результат может меняться между точками .await, поскольку планировщик может переместить задачу в другой рабочий поток.
Примеры
#[tokio::main(flavor = "multi_thread", worker_threads = 4)]
async fn main() {
let index = tokio::spawn(async {
tokio::runtime::worker_index()
}).await.unwrap();
println!("Task ran on worker {:?}", index);
}
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/runtime/fn.worker_index.html