Spec-Zone.ru › Tokio

Функция 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API