线程在系统中是如何实现的? 我知道子进程是使用 fork() 调用创建的 线程是轻量级的。线程的创建与子进程的创建有何不同?
最佳答案
线程是使用 clone()
系统调用创建的,该系统调用可以创建一个与其父进程共享内存空间和一些内核控制结构的新进程。这些进程称为 LWP(轻量级进程),也称为内核级线程。
fork()
创建一个新进程,最初 与其父进程共享内存,但页面是写时复制的,这意味着当原来的内容被改动了。因此,父进程和子进程都不能再更改彼此的内存,并且它们实际上作为单独的进程运行。此外,新 fork 的子进程是一个成熟的进程,具有独立的内核控制结构。
关于c - 线程创建和子进程创建的系统调用有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243173/