해결된 질문
작성
·
293
답변 2
0
0
멀티쓰레드 환경이라고 모든 변수가 항상 문제가 되는게 아니고
쓰레드끼리 공유해서 사용하는 데이터들이 문제가 됩니다.
일반 함수의 로컬 변수는 멀티쓰레드 환경이라 하더라도
각자의 스택 메모리가 있기에 별다른 영향을 받지 않습니다.
어차피 멀티쓰레드에 온 이상 [공유 데이터]는 항상 주의 깊게 생각해야 하기 때문에,
while (_stop == false)를 자제해야 할 것 까지는 없을 것 같고
그냥 특징 데이터가 공유 데이터인지를 생각하면서 프로그래밍을 해야합니다.
마지막으로 변형으로 인한 오류 부분이 나타나면 찾기 어려울 것 같다 하셨는데, 맞습니다!
싱글쓰레드에선 없던 버그가 멀티쓰레드에서만 발생하면
정말 골치가 아프고 찾기 힘든 상황이 종종 발생합니다.
그래서 멀티쓰레드를 프로그래밍의 흑마술이라고도 하고
MMO 서버 같이 꼭!! 사용해야 할 상황이 아니면 정말 기피하는 사람들도 많습니다.