pthread 예제

mjdevv·2023년 12월 22일
0

운영체제

목록 보기
6/12

POSIX threads (pthreads) library는 unix-like 운영체제에서 제공하는 스레드 프로그래밍 인터페이스이다.

위의 코드를 해석해보자.

  1. 포크를 뜬다.
  2. 부모 프로세스는 자식 프로세스가 끝날 때 까지 기다린다.
  3. 자식 프로세스일 경우
    3.1. 자식 프로세스 메인 스레드에서 새로운 스레드를 생성한다.
    3.2. 자식 프로세스의 메인 스레드에서 어떤 작업이 진행 된다고 가정하고 sleep을 5초 동안 호출한다.
    3.3. 생성된 스레드가 runner 함수를 호출하고 value 값을 바꾼 뒤 terminate 한다.
    3.4. pthread_join에서 메인 스레드가 다시 진행 되고, 자식 스레드에서 바꾼 값 5를 콘솔창에 호출한다.
  4. 자식 프로세스가 끝나고 부모 프로세스에서는 0을 콘솔창에 띄운다.

요약하자면,

  • 자식 프로세스의 공통 영역인 value 변수를 자식 메인 스레드에서 호출한 새로운 스레드가 변경하고, 다시 자식 메인 스레드에서 변경된 공통영역 변수를 콘솔창에 출력.

  • 부모 프로세스와 자식 프로세스는 별개의 프로세스이므로, 자식 프로세스에서 전역으로 선언된 value값을 5로 바꿔도 부모 프로세스의 메모리 영역에는 아무 연관이 없음

을 보여주는 예제라고 할 수 있다. 실행 시켜보면 결과는 아래와 같다.

profile
방구석 언어기술자

0개의 댓글

관련 채용 정보