一、线程的状态
1、线程的状态
C++线程有五种不同的状态:
创建
、就绪
、运行
、阻塞
、终止
。掌握线程状态可帮助我们跟踪程序的执行过程,并解决潜在的竞态条件和死锁问题,掌握它对于编写可靠和高效的多线程应用程序至关重要。下面分别介绍这几种状态,如下:
- 新建:新创建了一个线程对象,创建线程控制块(Thread Control Block,TCB)并初始化
- 就绪:线程被放入就绪队列并等待系统调度以执行
- 运行:线程获得CPU并执行代码,线程将会一直处于运行状态,直到它完成了其任务或者出现了某些错误。如果线程需要等待某些资源,如输入/输出,它将进入阻塞状态
- 阻塞:线程将停止执行并等待系统调度恢复它的执行。当线程获得需要的资源时,它将返回到就绪状态,等待系统调度再次选择它
- 终止:线程运行结束,等待父线程回收其控制块资源