pthread 아무래도 이상합니다..
글쓴이: posjkh22 / 작성시간: 토, 2016/07/23 - 11:27오후
첫번째(그림1)
그림에서
run() 함수 내에서
printf("%d",a); 으로 바꾸면 아무것도 뜨지 않습니다.
반드시 \n을 써주어야 5가 출력됩니다..
두번째(그림2~4)
다음과 같이 세개의 스레드를 이용하여 list[0], list[1]을 읽어 값을 출력하려하면
그림처럼 이상한 값들이 들어갑니다.
그런데 이런 현상이 두개의 스레드만 이용할 경우 발생하지 않습니다.
도대체 무엇이 문제인가요? 너무 힘듭니다
Forums:
printf()를 호출하더라도 화면 출력이 실시간으로
printf()를 호출하더라도 화면 출력이 실시간으로 이루어지는 게 아니라 일정 데이터가 쌓이면 출력하는 버퍼링을 거칩니다. 그리고 \n을 기준으로 출력 단위를 끊기도 합니다.
이상한 값이 나오는 건, main() 함수에서 pthread_t pthread[2]; 라고 두 개만 선언하고, &pthread[2]라고 3번째를 사용해서 stack이 오염된 것 같네요.
(컴파일러 경고 뜨지 않던가요?)
와 감사해요..
제가 이렇게 멍청할수가.. ㅜㅜ
감사합니다.
댓글 달기