2013-11-18 8 views
1

Существуют ли замки в ржавчине? The manual кратко упоминает об этом, но я не могу найти реализацию в стандартной библиотеке. Если они существуют, как мы их используем?Как использовать замки в ржавчине?

+3

Предполагаю, что вы имеете в виду [9.2.1 Связь между задачами] (http://static.rust-lang.org/doc/master/rust.html#communication-between-tasks)? Что ты пытаешься сделать? Как правило, вам не нужна * блокировка из-за изоляции задачи Rust и отсутствия гонки данных. –

+0

Я не пытаюсь делать что-либо в частности. Я просто задавался вопросом, может ли std lib предоставить ему способ сделать это, и если да, то как это сделать. –

ответ

3

Замки в ржавчине в основном используются для реализации предметов низкого уровня во время выполнения. Как сказал @ chris-morgan, вам вообще не нужны замки. Обычно правильным способом синхронизации между задачами является передача сообщений.

Если передача сообщений не соответствует вашим потребностям, КВДА могут работать: http://static.rust-lang.org/doc/master/extra/arc/index.html

2

Есть мьютексы (и переменные условий и т.д.) в extra::sync, хотя следует использовать обертки выше уровня для общей памяти, Эрик Холк упоминает в extra::arc, если общая память - это все, что вам нужно.

Смежные вопросы