해결된 질문
작성
·
143
·
수정됨
0
for(int i = 0; i < n ; ++i) 문 안에 스레드 생성시 매개변수로 &i를 주고 스레드를 생성할 경우 i 값이 변경되어 스레드에 +1 된 값이 전달되는 현상을 방지하려면 어떻게 해야 할 까요? 아마도 주소값을 주기 때문에 스레드 생성후에 i값이 변경되면서 발생한 거 같은데 해결 방법을 모르겠습니다.
답변 1
0
각 스레드의 매개변수로 i의 값을 전달하면 될 일이 아닌가 싶습니다. 굳이 주소를 넘겨 참조할 이유가 없겠습니다. 무엇보다 int i는 for문 스코프 내에 존재하는 지역변수이며 스레드가 실행될 시점에는 이미 소멸한 지역변수 일 가능성이 높습니다. 즉, 적절하지 않습니다. 참고하시기 바랍니다.