출처 - http://tasia.tistory.com/entry/C%EC%96%B8%EC%96%B4-pthread-%ED%95%A8%EC%88%98%EC%A0%95%EB%A6%AC pthread를 써야하는 이유는 단일 프로세서에서는 동시에 여러 작업을 하는 것처럼 유저에게 보여야하는 일이 있는데 간단한 예로 테트리스 게임같이 블록이 일정시간마다 자동적으로 내려가도록 하는 부분과 키 입력을 받을 때만 블록을 입력받은 방향으로 이동시키는 부분등... 이걸 멀티 쓰레드로 만들지 않는다면 아마 프로그래밍이 상당히 복잡해지고 구현하는데도 상당히 어려울 것이다. 이를 쉽게 처리하기위해서 pthread API 함수를 이용하여 쉽게 구현할 수 있다. pthread API 함수를 쓰기 위해서 pthread.h 파일을 include 해야만 한다. #include <pthread.h> 그리고 필히 컴파일시 -lpthread 옵션 추가해주어야만 한다. 빠뜨리면 컴파일 오류가 일어나거나 아니면 쓰레드가 정상 작동하지 않을 것이다. pthread_t : pthread의 자료형을 의미 int pthread_create( pthread_t *th_id, const pthread_attr_t *attr, void* 함수명, void *arg ); - pthread 생성한다. 첫 번째 인자 : pthread 식별자로 thread가 성공적으로 생성되면 thread 식별값이 주어진다. 두 번째 인자 : pthread 속성(옵션), 기본적인 thread 속성을 사용할 경우 NULL 세 번째 인자 : pthread로 분기할 함수. 반환값이 void* 타입이고 매개변수도 void* 으로 선언된 함수만 가능하다. ex) void* handler (void* arg) { ... } 네 번째 인자 : 분기할 함수로 넘겨줄 인자값. 어떤 자료형을 넘겨줄 지 모르기 때문에 void형으로 넘겨주고 상황에 맞게 분기하는 함수내에서 원래의 자료형으로 캐스팅해서 사용하면 된다. 리턴 값
이것저것 새로 아는 내용을 정리하는 블로그 주로 컴퓨터관련 내용이 될듯