Open tonykang22 opened 2 years ago
main() { while (true) { if (입력 데이터 존재) 처리 쓰레드(work) 생성; /* 생성 되자마자 다시 루프 */ } } work(입력 데이터) { /* 별도 독립적으로 동작 */ 입력 데이터 분석; 데이터 처리; 파일에 기록; }
# gcc -pthread hello.c –o hello
#include <pthread.h> int pthread_create (pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
void * start_routine (void *arg);
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> void *start_func(void *arg) { int i, num = *(int *)arg; for (i = 0; i < num; i++) printf("%d\n", i); pthread_exit((void *)0); } int main() { int num = 10; pthread_t thread_t; int ret, status; ret = pthread_create(&thread_t, NULL, start_func, (void *)&num); if (ret) { printf("pthread_create error: %s\n", strerror(ret)); return -1; } pthread_join(thread_t, (void **)&status); printf("Thread returned: %d\n", status); return 0; }
#include <pthread.h> void pthread_exit (void *retval);
#include <stdio.h> #include <stdlib.h> #include <pthread.h> void *start_func(void *arg) { int i, num = *(int *)arg; for (i = 0; i < num; i++) printf("%d\n", i); pthread_exit((void *)0); }
#include <pthread.h> int pthread_cancel (pthread_t thread);
11. 스레드
스레드 개요
스레드(Thread)란?
다중 프로세스와 다중 스레드 차이
프로세스 컨택스트 스위칭 이란?
주의할 점
스레드 개요
# gcc -pthread hello.c –o hello
스레드 생성
스레드 종료