线程的几种状态

线程的几种状态:

  1. New 新建状态:线程刚被创建,start方法之前的状态。

  2. Ready 就绪状态:未得到时间片就绪状态,start方法后线程进入就绪队列,等待被选中执行

  3. Runnable 运行状态: 得到时间片运行中状态

  4. Blocked 阻塞状态: 如果遇到锁,线程就会变为阻塞状态等待另一个线程释放锁

  5. Waiting 等待状态: 无限期等待

  6. Time Waiting 超时等待状态:有明确结束时间的等待状态

  7. Terminated 终止状态: 当线程结束完成之后就会变成此状态

操作系统OS有许多线程任务,OS选择任务分配给cpu执行。

cpu的核心,在某个时间单位内只能执行一个任务,计算机有几个核心,就能同时执行几个任务。

start 并不是执行线程的意思,而是将线程提交到就绪队列。

 就绪队列:

先提交到就绪队列中不一定就可以先执行,线程的执行顺序,是由OS 决定调度的;

先执行的线程也未必能先执行完毕,因为这里涉及到一个上下文切换的问题;

执行a线程任务,一个时间片后切换到线程任务b,同时保存a的状态,这一过程叫上下文切换;

比如 a 任务执行完需要1s,当a开始执行后,到达一个时间片的大小(一般是几十毫秒)就要进行切换,让出cpu核心给别的线程,任务a 回到就绪队列进行等待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值