• 카테고리

    질문 & 답변
  • 세부 분야

    데스크톱 앱 개발

  • 해결 여부

    해결됨

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

24.04.13 18:55 작성 24.04.13 19:36 수정 조회수 55

0

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

답변 1

답변을 작성해보세요.

0

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