頭條地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/
github地址:https://github.com/anonymousGiga/learn_rus...
1、任何程式語言中的通道都類似於單所有權的方式,即一旦一個值傳送到通道中,(傳送者)將無法再使用這個值;而共享記憶體就類似於多所有權,即多個執行緒可以同時訪問相同的記憶體位置。
2、互斥器
(1)作用:任意時刻,只允許一個執行緒訪問某些資料;
(2)互斥器的使用:使用前需要獲取鎖;使用後需要解鎖資料。
3、Rust中互斥器API:Mutex
use std::sync::Mutex;
fn main() {
let m = Mutex::new(5);
{
let mut num = m.lock().unwrap();
*num = 6;
} //離開作用域,Mutex<T>的鎖會自動釋放
println!("m = {:?}", m);
}
說明:
(1)Mutex是一個智慧指標,更準確的說,lock呼叫返回一個叫做MutexGuard的智慧指標;
(2)內部提供了Drop方法,實現當MutexGuard離開作用域時自動釋放鎖。
本作品採用《CC 協議》,轉載必須註明作者和本文連結