官术网_书友最值得收藏!

Concurrency and mutability

Rust's approach to managing memory is a powerful concept. In fact, it is powerful enough to also facilitate concurrency and parallel execution. However, first things first: how do threads work in the Rust standard library?

Concurrency and parallelism are two different modes of execution. While concurrency means that parts of a program run independently of each other, parallelism refers to these parts executing at the same time. For simplicity, we will refer to both concepts as concurrency.

Due to its low-level nature, Rust provides an API to the operating system's threading capabilities (for example, POSIX on Linux/Unix systems). If no variables are passed into the scope, their usage is very straightforward:

use std::thread; 

fn threading() {
// The to pipes (||) is the space where parameters go,
// akin to a function signature's parameters, without
// the need to always declare types explicitly.
// This way, variables can move from the outer into the inner scope
let handle = thread::spawn(|| {
println!("Hello from a thread");
});
handle.join().unwrap();
}

However, when passing data back and forth, more work has to be done to hold up Rust's safety guarantees, especially when mutability comes into play. Before getting into that, it is important to recap immutability.

主站蜘蛛池模板: 平定县| 隆林| 郓城县| 承德市| 无极县| 沛县| 司法| 阳山县| 马龙县| 河津市| 巨野县| 长顺县| 吉木萨尔县| 涟源市| 广西| 胶南市| 盐津县| 昂仁县| 新民市| 阿荣旗| 房山区| 法库县| 闵行区| 海林市| 昔阳县| 页游| 巫溪县| 平乐县| 余庆县| 阳春市| 息烽县| 夏邑县| 淮阳县| 东丰县| 仁布县| 鄂州市| 大同市| 越西县| 宁阳县| 临猗县| 湖南省|