use std::sync::Arc;
use std::thread;
fn main() {
let data = Arc::new(vec![1, 2, 3]);
for _ in 0..10 {
let data_clone = Arc::clone(&data);
thread::spawn(move || {
// 잘못된 접근으로 인해 데이터 경합 발생 가능성
println!("{:?}", data_clone);
});
}
}
data clone에 대해 변경을 전혀 시도하지 않기 때문에 경합 그딴거 안일어난단다. 만약 변경을 시도하면 컴파일 에러가 난단다. 낄낄낄 오히려 러스트의 안정성을 더욱 확인시켜주는 꼴이구나.
- dc official App
러스트도 데이터 레이스 일어남. 형님이 좀 잘못알고 있습니다. unsafe 런타임조건에서 발생함
아 언세이프는 언세이프니까 알아서 책임 져야지. - dc App
unsafe내에서는 일반적으로 원자적 수행이 안되서 실제 데이터 레이스가 발생할 수 있음
근데 그건 됐고 제가 깃 처음 써볼려고하는데, 소스트리 vs 깃 데스크탑 추천좀
나는 리눅스에서 cli로 다뤄서 그런거 모른다. 윈도우에서도 wsl하다가 짜증나서 윈도우 밀어버리고 리눅스 깔았다. 굳이 추천하자면 소스트리. 회사에선 맥북 쓰는데 팀장은 그거 쓰더라. - dc App
감사합니다 고민좀