OS/Linux
[Linux] Thread 만들기
SweetDev
2021. 11. 26. 23:41
User-level Thread 만들기
리눅스에는 thread의 개념이 없어서, 프로세서처럼 취급하고 만든다.
pthread란 POSIX Thread의 약자로 유닉스계열 POSIX시스템에서 병렬적으로 작동하는 소프트웨어를 작성하기 위하여 제공하는 API입니다.
pthread_create
pthread_create(pthread_t *thread, const pthread_attr_t * attr, void*(*start_routine)(void*), void *arg)
pthread_join: 전달된 thread가 끝나기를 기다린다
pthread_join(pthread_thread, void**retval)
* gcc 컴파일시 다음과 같이 -pthread옵션을 넣어줘야 한다
gcc -o test test.c -pthread
Kernel Thread 만들기
kthread_create(threadfn, data, namefmt, arg...)
kthread_run(threadfn, data, namefmt, ...)
threadfn은 static int를 리턴하는 형태여야 한다.
kthread_stop(struct task_struct *k)
kthread_should_stop()