Lập trình 11/11/2026 6 phút

Rust đo thật — đồng thời không sợ hãi: chia sẻ Cell qua luồng bị chặn ngay khi biên dịch (E0277, Cell không Sync), còn Arc<Mutex> cho kết quả đúng 4000 không mất cập nhật; Mutex chậm gấp 2,1 lần atomic, và chia-để-trị 4 luồng nhanh gấp 3 lần

Phần 10 sê-ri Rust đo thật: đồng thời không sợ hãi = data race bị bắt lúc biên dịch. Đo trong container rust 1.99.1: chia sẻ Arc<Cell<u64>> qua 4 luồng cho lỗi E0277 Cell cannot be shared between threads safely vì Cell không cài Sync — data race bị từ chối trước khi chương trình tồn tại. Dùng Arc<Mutex<u64>> thì chạy đúng: 4 luồng mỗi luồng +1000 cho kết quả 4000, không mất cập nhật. Bộ đếm chung 4 luồng × 2 triệu: Arc<Mutex> 193 ms, AtomicU64 91 ms — Mutex chậm gấp 2,1 lần. Chia-để-trị không chia sẻ trạng thái: tổng 200 triệu phần tử, 1 luồng 154 ms, 4 luồng 51 ms — nhanh gấp 3 lần.