2009-10-23 5 views

답변

3

스레드는 때때로 사용자 공간 ("녹색 스레드"라고도 함)에서 순전히 구현되지만 일반적으로 커널 공간에 구현됩니다. wikipedia article에서 자세히 설명합니다.

5

Linux의 경우 pthread_create() 외. glibc 프로젝트의 일부로 구현됩니다. 그것은 (이식성이없는, 리눅스 특유의) syscall clone()을 사용한다. (리눅스의 fork()clone()으로 구현됩니다). BSD 중 일부는 rfork()이라는 비슷한 시스템 콜을 가지고있다.

제 생각에 clone() 또는 rfork()은 모두 새 프로세스를 만들지 만, "copy-on-write 의미 체계를 사용하여 다른 주소 공간 제공"이라는 플래그를 지정할 수 있습니다. 따라서 fork()을 원한다면 그 플래그를 지정하십시오. 그러나 스레드를 만들고 싶지 않을 경우 공유 주소 공간이 생깁니다.

(자세한 내용을 제공하도록 편집 됨)

관련 문제