多进程要用到fork()函数,多线程要用到pthread_create()函数,但是在核内执行的都是do_fork(),dofork()提供了很多参数,例如:CLONE_VM(共享内存空间)、CLONE_FS(共享文件系统信息)、CLONE_FILES(共享文件描述符表)、CLONE_SIGHAND(共享信号句柄表)和CLONE_PID(共享进程ID,仅对核内进程,即0号进程有效)。
创建多进程时,子进程不传递参数,子进程复制了父进程的所有资源,但是拥有自己独立的内存空间。创建多线程时,父线程通过传递指针参数,使得子线程共享父线程的内存空间。子线程只有栈是独立的。