pthread_create() 함수 호출할때 pthread_t ID 사용 기법
글쓴이: poplinux / 작성시간: 화, 2011/10/25 - 1:52오후
안녕하세요.
얼마전에 기존 코드를 살펴보다가 pthread_create() 사용에 대한 특이한 케이스를 보게 되었습니다.
보통은 아래와 같이 쓰레드와 쓰레드 ID 를 쌍으로 사용하게 됩니다.
pthread_t id_up_thr; pthread_t id_down_thr; void *up_thr(void *arg) { return 0; } void *up_thr(void *arg) { return 0; } int process(void) { int ret; ret = pthread_create(&id_up_thr, NULL, up_thr, NULL); ret = pthread_create(&id_up_thr, NULL, down_thr, NULL); } int main(int argc, char *argv[]) { process(); while(1){ sleep(1); }; return 0; }
이번에 제가 살펴보고 있는 코드는 pthread_id 를 아래와 같이 사용하였더군요. join 등을 사용하지 않기 때문에 큰 문제가 없을 수도 있겠지만, 이런 용법으로 사용하는것이 올바른 코드인가에 대한 의문은 있습니다.
void *up_thr(void *arg) { return 0; } void *up_thr(void *arg) { return 0; } int process(void) { int ret; pthread_t id_thr ret = pthread_create(&id_thr, NULL, up_thr, NULL); ret = pthread_create(&id_thr, NULL, down_thr, NULL); } int main(int argc, char *argv[]) { process(); while(1){ sleep(1); }; return 0; }
보시기에 어떤가요? 쓰레드 생성시 pthread_id 를 쓰레드당 하나씩 별도로 쓰는 것이 아니라 위와 같이 pthread_id 변수 하나로 생성하였습니다.
동작시에는 큰 문제가 없겠지만 이런 코딩 스타일은 문제가 있지 않을까요?
Forums:
확인을
각 스레드 함수에서 pthread_self()로 확인해보면 더 알수있지 않을까요?
댓글 달기