Thread.sleep(0)有什么作用?

Thread.sleep(0):线程休眠0秒有什么意义?既然是 Sleep 0 毫秒,那么去掉该代码前后有啥区别?

在回答上述问题之前,先来看一下操作系统CPU调度策略:

  • 时间片:所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
  • 优先级:操作系统会根据进程的优先级(会根据特定的算法算出优先级)进行调度,即操作系统会把 CPU 交给优先级最高的进程。当进程执行完毕或者自己主动挂起后,操作系统就会重新计算一 次所有进程的优先级,然后再挑一个优先级最高的把 CPU 控制权交给他。

Thread.Sleep(0)的作用,就是“触发操作系统立刻重新进行一次CPU竞争”,竞争的结果可能是当前线程仍然获得CPU控制权,也可能是别的线程获得CPU控制权。

本博客参考Thread.sleep(0)的意义& 多线程详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值