进程与线程

一、什么是进程?

进程是程序的一次执行,是操作系统为正在运行的程序提供的抽象,即一个进程只是一个正在运行的程序。每个进程都有自己的地址空间、内存、数据栈,操作系统管理在其上运行的所有进程,并为这些进程公平的分配时间及系统资源。同时由于每个进程都有自己的内存空间和数据栈,所以只能使用进程间通信(IPC)的方式进行信息的交互而不能直接共享数据。在现代操作系统中,资源申请的基本单位是进程,进程由程序段、数据段和PCB(进程控制块)组成。

二、什么是线程?

线程是进程内的一个执行实体或执行单元,是比进程更小的能独立运行的基本单位,一个进程至少要有一个线程。

线程间共享进程内部的所有资源,每个线程有自己的堆栈和局部变量。

三、进程与线程的区别与联系

1、线程是程序执行的最小单元,而进程是操作系统分配资源的最小单元

2、一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

3、进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;

4、调度和切换:操作系统需要为每个进程分配独立的资源(包括内存空间、代码段、数据段、堆栈段等),这种操作的开销很大。而线程共享同一进程内部的资源(包括数据和地址空间等),因此CPU切换与创建一个线程的开销要小许多。

posted @ 2020-01-03 20:32  但求无悔1993  阅读(123)  评论(0编辑  收藏  举报