РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1039 of 1245 menu

Тип Builder

Тип Builder из модуля std::thread позволяет создать новый поток с заданными параметрами. Вместо прямого вызова функции spawn, вы создаёте экземпляр Builder, настраиваете его методами name и stack_size, а затем запускаете поток методом spawn. Метод new создаёт новый Builder. Параметром метод name принимает имя потока, а метод stack_size - размер стека в байтах.

Синтаксис

let builder = thread::Builder::new(); builder.name(String::from("name")); builder.stack_size(size); builder.spawn(closure);

Пример

Давайте создадим поток с именем "worker" и выведем его имя внутри потока:

use std::thread; fn main() { let builder = thread::Builder::new() .name("worker".to_string()); let handle = builder.spawn(|| { let current = thread::current(); println!("{:?}", current.name()); }).unwrap(); handle.join().unwrap(); }

Результат выполнения кода:

Some("worker")

Пример

Давайте создадим поток с увеличенным размером стека и выполним в нём простое вычисление:

use std::thread; fn main() { let builder = thread::Builder::new() .name("big_stack".to_string()) .stack_size(1024 * 1024); let handle = builder.spawn(|| { let res = 2 + 3; println!("{}", res); }).unwrap(); handle.join().unwrap(); }

Результат выполнения кода:

5

Смотрите также

  • метод new,
    который создаёт новый Builder
  • метод name,
    который задаёт имя потока
  • метод stack_size,
    который задаёт размер стека потока
  • метод spawn,
    который запускает поток с настройками Builder
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить