进程与线程的区别
1.进程具有独立的地址空间,而一个进程内部的多个线程共享内存。
2.线程是轻量级的进程,线程的上下文切换要比进程快很多。
在线程中,除了PC、堆栈(用于函数调用)、寄存器、状态等是独有的。如地址空间、全局变量、打开的文件等都是共享的。
3.所以,进程是资源分配的基本单位,线程是CPU调度的基本单位(核上跑的是线程)。
然后,进程和线程又没有本质区别。在Linux中,通过fork()创建进程,通过pthread_create()创建线程。但是:
- 这两个函数调用的都是内核中的
do_fork(),区别只不过是参数不同,创建线程时通过传参来表明共享的资源。 - 此外,无论进程还是线程,内核中都使用
task_struct结构体(进程/线程描述符)来存储信息。

浙公网安备 33010602011771号