Rc<T>
não é thread-safe, sendo necessário o uso de Arc<T>
em conjunto de algum mecanismo de sincronização, por exemplo Mutex<T>
. O próprio autor comenta ao final do post, inclusive.
Último parágrafo do "The Rust Programming Language", capítulo 15.4:
Note that Rc is only for use in single-threaded scenarios. When we discuss concurrency in Chapter 16, we’ll cover how to do reference counting in multithreaded programs.
No post esta deste modo:
Embora o Rc seja incrivelmente útil, ele não é thread-safe. Se você precisa compartilhar dados entre threads, considere usar Arc (Atomic Reference Counted)
É deste ponto que esta comentando?
Exatamente, pois o outro comentário está dizendo que ele "pode ser útil em alguns casos que é necessário paralelizar algum tipo de processamento".
Realmente, é algo bem útil de deixar uma referência a documentação, vou manter anotado para guiar o conteúdo.
Mas unsafe rust esta ai, para este tipo de caso.