Метод spawn
Метод spawn класса Builder запускает новый поток,
используя конфигурацию, заданную через методы name
и stack_size. Параметром метод принимает замыкание,
которое будет выполняться в новом потоке. Метод возвращает
Result с JoinHandle в случае успеха или ошибку,
если поток не удалось создать.
Синтаксис
builder.spawn(f)
Пример
Давайте создадим поток с именем "worker"
и выведем сообщение из него:
use std::thread;
fn main()
{
let builder = thread::Builder::new().name("worker".to_string());
let handle = builder.spawn(|| {
println!("Hello from thread");
}).unwrap();
handle.join().unwrap();
}
Результат выполнения кода:
"Hello from thread"
Пример
Давайте зададим размер стека для нового потока и получим его идентификатор:
use std::thread;
fn main()
{
let builder = thread::Builder::new().stack_size(1024 * 1024);
let handle = builder.spawn(|| {
let id = thread::current().id();
println!("{:?}", id);
}).unwrap();
handle.join().unwrap();
}
Результат выполнения кода:
ThreadId(1)
Смотрите также
-
класс
Builder,
который позволяет настраивать параметры нового потока -
метод
new,
который создает новый экземпляр Builder -
метод
name,
который задает имя для нового потока -
метод
stack_size,
который задает размер стека для нового потока