您的位置:首页 > 其它

进程、程序、线程、多线程、并发、并行详解

2018-09-21 00:38 1051 查看

本人初入golang开发方向,目前刚入门。在代码开发过程中,需要提前了解一下进程、线程、多线程、并发、并行等专业知识的概念。

首先,并行与并发都是程序多线程处理场景,因此,一旦提到并行与并发,那首先想到的是多线程。

那么说到多线程,首先要了解一下什么是进程,什么是线程?

进程

狭义理解就是操作系统中一段程序的执行过程。那么广义上,进程是指一个具有一定独立功能的程序操作系统中关于某个数据集合进行的一次运行活动。是操作系统程序动态执行的基本单元。在传统的操作系统中,进程既是一个操作系统的基本分配单元,也是操作系统的基本执行单元。

1、首先,进程是一个实体,每一个进程都有自己对应的系统分配的内存地址,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态
b60
分配的内存;堆栈区域存储着活动过程调用的指令和本地变量;
2、进程可以理解为一个正在执行的程序,程序是一个静态的没有生命体征的实体,而经过操作系统处理对其赋予生命时(即调用程序执行操作),这个程序才可以变为一个活动的、有生命体征的实体,即进程。

3、进程共有三种状态:就绪、阻塞和运行。

(1)、就绪态:就绪状态是指程序已达到可以运行的状态,只等CPU分配资源就可以运行的状态。
(2)、阻塞态:当程序运行条件没有满足时,需要等待条件满足时候才能执行时所处的状态,如等待i/o操作时候,此刻的状态就叫阻塞态。
(3)、运行态:进程占用CPU,并在CPU上运行。即程序正在运行时所处的状态。

进程状态转换在此处不在赘述,请看下一篇文章。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  进程 线程 并行 并发
相关文章推荐