[#] [Перевод] Многопоточность в Rust
habrabot(difrex,1) — All
2015-04-21 04:00:02


Rust начинался как проект, решающий две трудные проблемы:

* Как обеспечить безопасность (работы с памятью) в системном программровании?
* Как сделать многопоточное программирование безболезненным?

Изначально эти проблемы казались не связанными друг с другом, но к нашему удивлению, их решение оказалось одинаковым — **проблемы с многопоточностью решают те же самые инструменты, которые обеспечивают безопасность**. Ошибки работы с памятью и ошибки при работе с несколькими потоками частно сводятся к тому, что код обращается к некоторым данным вопреки тому, что он не должен этого делать. Секретное оружие Rust против этого — концепция _владения данными_, способ управления доступом к данным, которого системные программисты стараются придерживаться самостоятельно, но который Rust проверяет статически. С точки зрения безопасности работы с памятью это означает, что вы можете не использовать сборщик мусора _и в то же время_ не опасаться сегфолтов, потому что Rust не даст вам совершить ошибку. С точки зрения многопоточности это означает, что вы можете пользоваться различными парадигмами (передача сообщений, разделяемое состояние, lock-free-структуры данных, чистое функциональное программирование), и Rust позволит избежать наиболее распространённых подводных камней. Вот какие особенности у многопоточного программирования в Rust: [Читать дальше →][1]

[1]: http://habrahabr.ru/post/256211/#habracut