pthread에서 프로세스의 갯수가 왜 이렇게 나오는지 궁금합니다.
글쓴이: gugudan / 작성시간: 금, 2004/10/22 - 10:22오전
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
void* do_loop(void *data)
{
int i;
int me = *((int *)data);
for (i = 0; i < 10; i++)
{
printf("%d - Got %d\n", me, i);
sleep(1);
}
}
int main()
{
int thr_id;
pthread_t p_thread;
int status;
int a = 1;
int b = 2;
int c = 3;
thr_id = pthread_create(&p_thread, NULL, do_loop, (void *)&a);
pthread_join(p_thread, (void *) &status);
printf("programing is end\n");
return 0;
}
요즘 스레드를 보고 있는데 이 소스를 실행을 하면
프로세스가 3개가 뜹니다.
리눅스 커널 버젼이 낮아서 프로세스가 뜨는건 이해가 가는데
왜 3개가 뜨는거지요?
메인 스레드하고 내가 생성한 스레드..
이렇게 2개가 뜨는게 정상 아닌가요?
Forums:


하나는 쓰레드 스케쥴러 입니다.생성되는 모든 쓰레드는 그 프로세스의
하나는 쓰레드 스케쥴러 입니다.
생성되는 모든 쓰레드는 그 프로세스의 자식으로 되죠.
pthread_create는 실제 쓰레드를 생성하는 것이 아니라 중간에 있는 스케쥴러에게 쓰레드를 생성해달라는 요청만하는 것입니다.
---
http://coolengineer.com
댓글 달기