进程和线程的联系和区别?

进程和线程的联系和区别?
线程和进程的联系:
线程是进程当中的⼀条执⾏流程。
同⼀个进程内多个线程之间可以共享代码段、数据段、打开的⽂件等资源,但每个线程各⾃都有⼀套独⽴的寄存器和栈,这样可以确保线程的控制流是相对独⽴的。
线程与进程的比较如下:
- 调度:进程是资源(包括内存、打开的文件等)分配的单位,线程是CPU调度的单位;
- 资源:进程拥有一个完整的资源平台,而线程只独享必不可少的资源,如寄存器和栈;
- 拥有资源:线程同样具有就绪、阻塞、执行三种基本状态,同样具有状态之间的转换关系;
- 系统开销:线程能减少并发执行的时间和空间开销——创建或撤销进程时,系统都要为之分配或回收系统资源,如内存空间、I/O设备等,操作系统所付出的开销显著大于在创建或撤销线程时的开销,进程切换的开销也远大于线程切换的开销。