Linux中进程和线程的简单对比与区别

Linux中进程和线程的简单对比与区别

1.概念

进程:程序的一次执行过程

线程:进程中的一条执行路径。

2.区别

(1)每个进程在创建时额外申请了新的内存空间以存储代码段、数据段、BSS段、堆、栈空间,并且初始化为父亲进程空间的值( 即复制)。

         每个创建的新线程在用户空间仅申请自己的栈空间,而与同进程的其他线程共享其他地址空间,包括代码段、数据段、BSS 段和堆段,另外,打开的库,mmap映射的文件以及共要内在空间。

Linux中进程和线程的简单对比与区别

(2)进程是Linux系统下资源管理的基本单元,每个进程有自己独立的运行空间;线程是Linux系统调度的基本单元,同一进程下的线程可以共享数据,线程不能脱离进程存在。

3.进程和线程的关系:

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

(3)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行

Linux中进程和线程的简单对比与区别