什么是线程?线程的分类

线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成,它不能独立拥有系统资源,但它可与同属一个进程的其它线程共享该进程所拥有的全部资源。 Python技术文章2021-07-20 |传智教育 |什么是线程,线程的分类
好口碑IT培训

线程是系统进行运算调度的最小单位,也被称为轻量级进程,它包含在进程之中,是进程的实际运作单位。进程中可以包含多个线程,每个线程是进程中单一顺序的控制流,可以并行执行不同的任务。

线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成,它不能独立拥有系统资源,但它可与同属一个进程的其它线程共享该进程所拥有的全部资源。

线程一般可分为以下几种类型:

主线程:程序启动时,操作系统会创建一个进程,与此同时会立即运行一个线程,该线程通常被称为主线程。主线程的作用主要有两个,一个是产生其他子线程,另一个是最后执行各种关闭操作,例如文件的关闭。

子线程:程序中创建的其它线程。

守护线程(后台线程):守护线程是在后台为其它线程提供服务的线程,它独立于程序,不会因程序的终止而结束。当进程中只剩下守护线程时,进程直接退出。

前台线程:相对于守护线程的其它线程称为前台线程。

线程与进程相似,也具有五个状态,分别是新建态、就绪态、运行态、阻塞态和消亡态,这些状态之间的转换如图1所示。

1626763149576_11.png

图1 线程状态的转换

由图1可知,线程因某些条件发生时会由运行态转换为阻塞态,这些条件可能为以下任意一种:

(1) 线程主动调用sleep()函数进入休眠状态;

(2) 线程试图获取同步锁,但是该锁正被其它线程持有;

(3) 线程等待一些I/O操作完成;

(4) 线程等待某个条件触发。

Python教程

Shuffle是什么?有哪些工作流程

2021-8-7 20:25:21

Python教程

为什么要给数据仓库分层?每层具体的含义是什么?

2021-8-7 20:25:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索