에 이르게 내가 가진는 pthread_create이 코드입니다 이상한 출력
producer thread: #1 in critical setion
000
100
consumer thread: #4 in critical setion
100
after change
000
producer thread: #0 in critical setion
000
010
consumer thread: #1 in critical setion
010
after change
000
producer thread: #1 in critical setion
000
001
producer thread: #2 in critical setion
001
101
consumer thread: #2 in critical setion
101
after change
100
consumer thread: #2 in critical setion
100
after change
000
producer thread: #2 in critical setion
000
010
consumer thread: #4 in critical setion
010
after change
000
결과는 것을 제외하고 예상된다 카운트까지해야 이 경우에는 "# 3"이 없지만 0에서 4까지입니다. 그리고 "#"은 프로그램을 실행할 때마다 바뀝니다. 때로는 "# 0"과 "# 1"만 표시되기도합니다.
정말 고마워요! 나는 무엇이 잘못되었는지 이해합니다. 그러나 두 번째 방법은 시도 할 때 작동하지 않습니다. 세그먼트 오류가 발생합니다. – user2895478
@ user2895478 : 두 번째 방법과 관련된 변경 사항을 명확히하기 위해 게시물을 약간 업데이트했습니다. 나는 그것을 테스트했고 기대했던 결과를 얻었다. 앞서 언급했듯이 포인터를 통해 값을 전달할 수 있습니다. 스레드 코드에서 참조를 취소하지 않았는지 확인하십시오. – esorton