본문 바로가기
멀티코어 프로그래밍/Pthread

Pthread 아규먼트(1)

by 기리의 개발로그 2022. 5. 6.

Pthreads 아규먼트

아규먼트가 있는 함수의 스레드 생성

  • pthread_create 함수
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void(* start_routine)(void *), void *arg) 
  • 아규먼트를 사용하지 않는 함수의 경우
    • arg에 NULL 을 삽입하여 생성
  • 아규먼트를 받는 함수의 경우
    -arg를 통해 아규먼트를 함께 넘겨주어야 함

void *

  • pthread_create 함수 타입
    • 아규먼트/반환 타입이 void * 인 함수를 실행
  • void * 인 이유
    • void * 는 주로 임의의 data type을 가리키는 용도로 사용
    • 임의의 data type을 아규먼트/반환 값으로 넘겨줄 수 있음

단일 아규먼트 전달

  • 아규먼트로 정수 n을 받고 0 ~ n-1 의 숫자를 출력하는 경우
    • pthread_create의 마지막 아규먼트 사용(void * 로 integer 변수를 가리킴)
    • main 스레드의 경우
      • 아규먼트(n)를 가리키는 포인터 설정
      • 포인터를 아규먼트로 넘김
    • ex) Main 함수의 n 값을 아규먼트로 받아 Thread에서 0 ~ n 까지의 값을 출력

  • Main 함수에서 n의 주소값을 pthread_create 호출 시 함수의 전달인자로 넘겨준다.
  • Thread가 실행할 함수(print_sequence)에서 매개변수를 int * 형으로 타입 변환한 후 가리키는 실제 값을 지역변수 n에 저장한다.

  • 실행결과 Thread에서 출력한 결과가 제대로 출력됨을 알 수 있다.
반응형

'멀티코어 프로그래밍 > Pthread' 카테고리의 다른 글

Pthread 반환 값  (3) 2022.05.10
Pthread 아규먼트(2)  (2) 2022.05.09
Pthread 프로그래밍(2)  (4) 2022.05.04
Pthread 프로그래밍(1) - "Hello World"  (6) 2022.05.03
Pthread  (9) 2022.05.02

댓글