当前位置: 技术文章>> Python高并发与高性能系列-线程的7种状态

文章标题:Python高并发与高性能系列-线程的7种状态
  • 文章分类: 后端
  • 20330 阅读

任何一个具体的Python线程拥有7种不同的状态。这7种不同的状态构成了线程的生命周期。

● 线程创建状态:该状态表明线程刚刚被创建,还没有被调用或初始化,此时的线程只是一个空的线程对象。

● 线程就绪状态:在该状态下,初始化一些线程运行所需要的属性和方法,以便被任务调用。

● 线程运行状态:线程实际运行的状态,即线程一旦被任务调用,就会从线程就绪状态转变为线程运行状态,且线程一旦进入运行状态,就表明已经开始执行任务了。

● 线程中止状态:当线程在运行状态时,由于任务中止或者人为操作等迫使线程停止运行,线程从运行状态转变为中止状态。转变为中止状态的线程,如果没有人为干预,不会自动执行,除非给线程设定一定的饱和策略或其他可恢复线程执行的策略条件。

● 线程等待状态:线程等待状态分为无限期等待状态和限期等待状态。无限期等待表示CPU资源被先前的线程抢占,且先前的线程一直不释放CPU资源,导致当前线程无限期等待下去;限期等待表示先前已经抢占到CPU资源的线程,在过了一定时间后会自动释放CPU资源,当前线程只需要等待一定时间即可获取CPU资源。线程运行状态无论转变为无限期等待状态还是转变为限期等待状态,均需要开发者控制,线程无法自动转换。

● 线程阻塞状态:线程阻塞状态与线程等待状态类似,只不过线程阻塞状态更多地用于表示线程队列的状态,即在线程队列中,等待执行任务的线程均可以被认为是阻塞的。线程阻塞状态需要开发者控制,线程无法自动转换。

为了更清楚地说明线程状态,以及线程各状态间的转换,笔者画了一张线程状态转换图,如图1-7所示。

为了更清楚地说明线程状态,以及线程各状态间的转换,笔者画了一张线程状态转换图,如图1-7所示。

---------------------------------------------------------------------------------

学习更多专业Python知识,点此查看:

《剑指Python-上》  《剑指Python-下》

---------------------------------------------------------------------------------


推荐文章