Thread 연습 프로그램[C, Linux]

Thread 연습 프로그램[C, Linux]

안녕하세요.

오늘은 유닉스라는 과목을 들으면서 제가 만든 코드를 올려보려고 합니다.

  • Parameter로 thread의 수를 입력받고, 입력받은 수 만큼 thread를 생성.
  • 각 쓰레드는 생성된 순서의 번호와 자기 thread id를 출력.
  • 생성된 순서의 번호는 thread function의 Parameter로 넘길 것.

코드

코드는 아래와 같습니다.

코드 파일은 깃허브에서 다운받으실 수 있습니다.

(귀찮아서 나중에 링크 올릴게요.)

실행

실행은 리눅스 환경에서 했습니다.(라즈베리파이3b+ 라즈비안)

주요 코드 설명

흠흠.. 만들 때 조금 실수를 해서 7개를 만들었는데 0,1,2,3,4,5,6 이렇게 나오네요.(뭐 틀린 것은 아니니까..ㅋㅋㅋ)

일단 값을 넘기는 부분의 설명을 간단하게 해 보겠습니다.

  • 앞의 0~6까지의 수(생성된 순서)를 t_func의 parameter로 넘겼을 때 생성된 숫자가 동일하지 않아야 합니다.
  • 쓰레드의 생성된 숫자가 동일하지 않기 위해서는 쓰레드끼리 서로 데이터를 공유하지 않아야 합니다.
  • 그래서 이 문제를 해결하기 위해서 malloc으로 공간을 할당하고 할당된 공간을 넘겨줬습니다.

쓰레드 관련 내용은 이 전 글인 thread를 사용한 구구단에서 대충 설명했으니 하지 않겠습니다.(아래 링크 참고)

 

Designed by JB FACTORY