今天开始接触多线程、并发相关知识。
首先先来了解一下相关概念。
进程、程序、线程、并发、并行相关概念区分
程序
程序:一段执行的代码,有数据和指令集。
进程
进程:一段程序执行的过程,是程序的实体,为程序提供所需要的资源。
线程
线程:操作系统进行运算能调度的最小单元,是进程的实际运作单元。一个进程可以并发很多个线程执行不同的任务。(有一个主进程,可以调用多个线程)
并发
指某一段时间内,进程交替执行。看似同时,但某一个时刻都只有有个进程在工作。单核就可以实现。
并行
指某个时刻,进程与进程同时执行。需要多核。
一个形象的例子:
吃饭的时候刷综艺。如果你必须停下吃饭看综艺,那就是并发;如果你可以边吃边看,那么就是并行。
大概连在一起就是一个进程开辟空间和一些寄存器资源等,使一个程序跑起来,期间有多个功能同时工作的时候,并发出多个线程来完成任务。这些任务不是一起执行,而是交替执行共同完成。
线程的生命周期(我愿称之为线程的几种状态)
生命周期的理解很简单:开始到结束。但一个线程不止有alive 和dead 两种状态。
所以还是来认识线程的几种状态:
标准版本:
官方API文档定义: