Speaking of threading, I've heard Rust was particularly good for it. Does Rust enforce data immutability between threads, or does it use other methods for it? What are all the methods Rust uses to ensure thread safety?