[Day4] Read Rust Atomics and Locks

by Mara Bos

R4 Cheng
1 min readMay 8, 2023

At Topics: Chapter 1. Basics of Rust Concurrency

until: The Leakpocalypse

Sync to My Blog: https://my-blog-chengr4.vercel.app/posts/day4-read-rust-atomics-and-locks_230508

Prerequisites

  • Know ‘static : A reference can live for the entire duration of the program

Notes

  • std::thread::scope spawn scoped threads => possible to safely borrow local variables. eg:
let numbers = vec![1, 2, 3];

// it does not have a 'static bound
// allowing us to ref. anything as long as it outlives the scope, such as number
thread::scope(|s| {
s.spawn(|| {
println!("length: {}", numbers.len());
});
s.spawn(|| {
for n in &numbers {
println!("{n}");
}
});
}); // the program waits for both spawned threads to finish executing before continuing
  • The “Leakpocalypse”: The design of a safe interface cannot rely on the assumption that objects will always be dropped at the end of their lifetime.

Eg. a cycle of reference-counted nodes

  • Leaking is always a possibility

Not Understand Yet

--

--

R4 Cheng
R4 Cheng

Written by R4 Cheng

「0」が過去で「1」が未来「今」は何処にもない

No responses yet