Sha*_*dra 4 multithreading operating-system linux-kernel
编写用于实现线程库的代码是内核代码的一部分吗?pthread_create()等函数的实现是内核的一部分吗?
在Linux pthread_create()等人.是作为glibc项目的一部分实现的.它使用(非可移植的,特定于Linux的)系统调用clone().(Linux fork()也是以实现的方式实现的clone()).一些BSD也有类似的系统调用rfork().
我的理解是,clone()或者rfork()都会创建一个新进程,但是你可以指定一个标志,说"使用copy-on-write语义为它提供不同的地址空间".因此,如果需要fork(),可以指定该标志,但如果要创建线程,则不需要,最终会得到共享地址空间.
(编辑提供更多细节)