Читаем Rust на примерах полностью

println!("Количество ссылок на rc_a: {}", Rc::strong_count(&rc_a));

// Два `Rc` равны, если равны их внутренние значения

println!("rc_a и rc_b равны: {}", rc_a.eq(&rc_b));

// Мы можем напрямую использовать методы внутреннего значения

println!("Размер значения внутри rc_a: {}", rc_a.len());

println!("Значение rc_b: {}", rc_b);

println!("--- rc_b удаляется ---");

}

println!("Количество ссылок на rc_a: {}", Rc::strong_count(&rc_a));

println!("--- rc_a удаляется ---");

}

// Ошибка! `rc_examples` уже перемещена в `rc_a`

// И когда `rc_a` удалилась, `rc_examples` удалилась вместе с ней

// println!("rc_examples: {}", rc_examples);

// TODO ^ Попробуйте удалить комментарий эту строку

}

הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

<p id="Смотрите_также_65"><strong><a l:href="#Смотрите_также_65">Смотрите также:</a></strong></p>

std::rc и Arc.

<p id="Разное_в_стандартной_библиотеке"><strong><a l:href="#Разное_в_стандартной_библиотеке">Разное в стандартной библиотеке</a></strong></p>

Многие другие типы предоставляются стандартной библиотекой для вспомогательных целей, например:

   • Потоки

   • Каналы

   • Операции файлового ввода/вывода

Они расширяют возможности, которые предоставляют примитивы.

<p id="Смотрите_также_66"><strong><a l:href="#Смотрите_также_66">Смотрите также:</a></strong></p>

примитивы и стандартная библиотека

<p id="Потоки"><strong><a l:href="#Потоки">Потоки</a></strong></p>

Rust предоставляет механизм для создания собственных потоков операционной системы через функцию spawn. Аргументом этой функции является замыкание, которое принимает владение захваченным ею окружением.

use std::thread;

static NTHREADS: i32 = 10;

// Это главный поток `main`

fn main() {

// Создаём вектор дочерних потоков.

let mut children = vec![];

for i in 0..NTHREADS {

// Создаём очередной поток

children.push(thread::spawn(move || {

println!("этот поток номер {}", i);

}));

}

for child in children {

// Ждём пока поток завершится и вернёт результат.

let _ = child.join();

}

}

הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Эти потоки будут запланированы ОС.

<p id="Пример_map_reduce"><strong><a l:href="#Пример_map_reduce">Пример: map-reduce</a></strong></p>

Rust позволяет очень легко распределить обработку данных между потоками, без головной боли, традиционно связанной с попыткой сделать это.

Перейти на страницу:

Похожие книги

Писать нельзя молчать
Писать нельзя молчать

Неужели ты опять отложишь мечту – написать книгу? Опять занят и считаешь затею глупостью? А ведь чтобы сотворить историю нужно совсем немного: капелька поддержки на старте, чуток теории в процессе и безудержная энергия творчества, которую я помогу тебе разбудить. Или вспомнить.Мир живёт историями, и каждый может стать увлекательным рассказчиком. В этой книге я дам ответы на самые животрепещущие вопросы писателя-новичка. Эта книга для тех, кто:• Хочет писать истории, но откладывает дело в долгий ящик;• Писал раньше, но разуверился в своих силах;• Боится показаться глупым мечтателем в глазах близких;• Боится совершить ошибки;• Просто застрял и не знает, как воплотить свою идею;• Давно пишет, но не может довести до конца ни одну историю;• Не знает, как найти свою аудиторию, как с ней общаться;• Хочет почерпнуть вдохновение от общения с коллегой по писательскому делу.Эта книга написана без лишнего пафоса и с конкретными шагами на внедрение. Все, что остается, это сесть поудобнее и приступить к чтению.В формате PDF A4 сохранен издательский макет книги.

Юрий Михайлович Окунев , Юрий Окунев

Хобби и ремесла / Учебные пособия, самоучители / Дом и досуг