인프런 커뮤니티 질문&답변

Seongc좋은ᅵᅵheol Kim님의 프로필 이미지
Seongc좋은ᅵᅵheol Kim

작성한 질문수

Windows 시스템 프로그래밍 - 기본

DLL 작성 시 주의사항

강사님 스레드 관련 질문 드립니다.

해결된 질문

작성

·

143

·

수정됨

0

for(int i = 0; i < n ; ++i) 문 안에 스레드 생성시 매개변수로 &i를 주고 스레드를 생성할 경우 i 값이 변경되어 스레드에 +1 된 값이 전달되는 현상을 방지하려면 어떻게 해야 할 까요? 아마도 주소값을 주기 때문에 스레드 생성후에 i값이 변경되면서 발생한 거 같은데 해결 방법을 모르겠습니다.

답변 1

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

각 스레드의 매개변수로 i의 값을 전달하면 될 일이 아닌가 싶습니다. 굳이 주소를 넘겨 참조할 이유가 없겠습니다. 무엇보다 int i는 for문 스코프 내에 존재하는 지역변수이며 스레드가 실행될 시점에는 이미 소멸한 지역변수 일 가능성이 높습니다. 즉, 적절하지 않습니다. 참고하시기 바랍니다.

Seongc좋은ᅵᅵheol Kim님의 프로필 이미지
Seongc좋은ᅵᅵheol Kim

작성한 질문수

질문하기