Enter your book access code

The curriculum, drills, tutor, and interviewer mode are for readers of Ace the Rust Interview. The code is printed in the Preface (Companion site access).

Don’t have the book yet? The landing page stays open — purchase unlocks this gym.

intermediate · order 61

Why Rc cannot cross threads

conc-send-01Related book chapters: 12 (optional — this page is complete on its own)SendSync

Slug: conc-send-01 · Paired reading: Chapter 12

Prompt

Implement fn parallel_sum(xs: Vec<i32>) -> i32 that splits the vector in half, sums each half on a scoped thread (or joins spawned threads with owned halves), and returns the total. Use std::thread::scope so halves may be borrowed.

Predict first

What happens if you try thread::spawn with an Rc<Vec<i32>>?