pthread_create
#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine), void *arg);
새 쓰레드를 만드는 함수.
쓰레드 ID, 쓰레드 attribute, 쓰레드 시작함수, 쓰레드 시작함수의 argument가 들어간다.
output으로 정상작동시 0, 비정상작동시 -1을 반환한다.
exit(num) 시 process가 종료되고 num을 반환한다.
main thread 가 죽을경우 같이 죽는다. 하지만 pthread_exit을 하면 종속성에서 벗어날 수 있다.
child thread 가 일 하기 전에 main thread 가 죽는걸 방지하고 싶다면 pthread_join으로 main thread를 기다리게 하면 된다.
pthread_join
자식 thread의 종료를 기다리는 것
pthread_exit
자식 thread의 생명주기를 main과 분리시키는 것.
fork
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
자식 process를 만드는 것
thread는 동일 process내에서 stack 부분만 할당받아서 새로운 작업을 시행하며 heap, data, code 부분은 공유하지만
process는 cpu에서 메모리자원을 통채로 받아와 새로운 stack,heap, data, code가 생기는 차이.
'개발 > C' 카테고리의 다른 글
[C] 상속 구현, 버전 구현 (0) | 2023.01.20 |
---|---|
[C] syscall이란 (0) | 2023.01.13 |
[C] 포인터란, & * 차이 (0) | 2023.01.10 |
[C] 웹소켓프로그래밍 함수 정리 (socket.io) (0) | 2023.01.05 |
[C 소켓통신 #3] HTTP에 메시지를 보내고 받기 (0) | 2022.12.30 |