进程与线程
Posted zhouxingyu1993
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程与线程相关的知识,希望对你有一定的参考价值。
一、什么是进程?
进程是程序的一次执行,是操作系统为正在运行的程序提供的抽象,即一个进程只是一个正在运行的程序。每个进程都有自己的地址空间、内存、数据栈,操作系统管理在其上运行的所有进程,并为这些进程公平的分配时间及系统资源。同时由于每个进程都有自己的内存空间和数据栈,所以只能使用进程间通信(IPC)的方式进行信息的交互而不能直接共享数据。在现代操作系统中,资源申请的基本单位是进程,进程由程序段、数据段和PCB(进程控制块)组成。
二、什么是线程?
线程是进程内的一个执行实体或执行单元,是比进程更小的能独立运行的基本单位,一个进程至少要有一个线程。
线程间共享进程内部的所有资源,每个线程有自己的堆栈和局部变量。
三、进程与线程的区别与联系
1、线程是程序执行的最小单元,而进程是操作系统分配资源的最小单元
2、一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
3、进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
4、调度和切换:操作系统需要为每个进程分配独立的资源(包括内存空间、代码段、数据段、堆栈段等),这种操作的开销很大。而线程共享同一进程内部的资源(包括数据和地址空间等),因此CPU切换与创建一个线程的开销要小许多。
以上是关于进程与线程的主要内容,如果未能解决你的问题,请参考以下文章