pthread 를 이용해 쓰레드를 만들었습니다만 pid 값에 대한 의문
글쓴이: i_wish_awk_sed_perl / 작성시간: 금, 2004/05/28 - 4:36오전
pthread 를 이용해 5개의 쓰레드를 만들어서 간단한 테스트를 하고 있습니다만 쓰레드라고 하면 fork 를 해서 사용하는것과는 달리 하나의 프로세스 안에서 여러개의 쓰레드가 생성되어야 하는것이 아닌지요?
하지만 실제 코드를 짜고 실행해 보니 여러개의 프로세스가 실행됩니다.
게시판에서 잠깐 본 글로는 리눅스 2.4 대까지는 vfork() 를 이용해서 이렇고 2.6 대에서는 진정한 쓰레드(?)가 지원이 된다고 하는데...더 자세한 이야기를 부탁 드립니다!
Forums:
vfork이 아니라 clone이라고 알고 있습니다.thread가
vfork이 아니라 clone이라고 알고 있습니다.
thread가 맞긴 합니다만, pid를 공유하지 않는 상태인 것이지요..
linux thread 구현시, clone 에 CLONE_PID flag가 제대로 구현되어 있지
않았기 때문에 다른 pid를 가질 수 밖에 없었다고 생각합니다만..;;
그외에도 signal 등 posix를 제대로 따르지 않는 경우가 몇몇 있습니다.
2.5 대 이상의 커널로 최신 glibc version을 사용하신다면,
NPTL의 사용으로 getpid시.. 동일한 pid를 가지시는 것을 볼 수 있습니다.
I thought what I'd do was,
I'd pretend I was one of those deaf-mutes.. or should I?
음... vfork 가 아니였군요. 그렇다면 ps -ef 등의 명령으로
음... vfork 가 아니였군요. 그렇다면 ps -ef 등의 명령으로 확인해 볼때 단지 프로세스가 여러개 뜬것 처럼 나오지만 이것이 제대로(?) 쓰레드의 역활은 하고 있다고 생각하고 넘어가면 될까요?
그리고 man -k pthread 등으로 검색을 해 보아도 pthread 에 관련된 man 페이지는 없는거 같습니다. 뭐 다른 랭귀지쪽에는 있는거 같지만 c 쪽으로는 없네요. 혹시 다른 man 페이지를 설치해 줘야 하는게 있는지요?
언제쯤 정규표현식을 정복할 수 있을까? ㅡㅡ;
댓글 달기