在Rust中,全局變量是在整個程序范圍內可訪問的變量。要定義一個全局變量,你需要使用static
關鍵字,并遵循以下規則:
Clone
trait)。pub
關鍵字將其定義為公共的。Mutex
或RwLock
等同步原語來確保線程安全。下面是一個簡單的示例,展示了如何在Rust中定義一個全局變量:
// 導入所需庫
use std::sync::Mutex;
// 定義一個全局變量
static mut GLOBAL_VARIABLE: Mutex<i32> = Mutex::new(0);
fn main() {
// 在某個線程中修改全局變量的值
let handle = std::thread::spawn(|| {
let mut num = GLOBAL_VARIABLE.lock().unwrap();
*num += 1;
});
// 在主線程中讀取全局變量的值
handle.join().unwrap();
let num = GLOBAL_VARIABLE.lock().unwrap();
println!("Global variable value: {}", *num);
}
在這個示例中,我們定義了一個名為GLOBAL_VARIABLE
的全局變量,它是一個可變的整數。我們使用Mutex
來確保在多線程環境下對該變量的訪問是線程安全的。然后,我們在一個線程中修改該變量的值,并在主線程中讀取它的值。