[C#]Thread.Sleep()方法的一些知识

发布时间 2023-07-30 19:08:30作者: takoyak1
  • 作用:告诉操作系统在未来的x毫秒内不再参与到CPU竞争,不需要时间片
  • 问题1:1000毫秒后会准时恢复执行吗?
    不会,当前线程醒了之后会进入等待队列等待分配时间片,此时可能会有其他线程正在占用CPU,则至少需要等待该线程时间片结束;而且就算此时没有正在执行的线程,当前线程的优先级也不一定是所有线程里最高的,需要等他前面排队的所有线程执行完之后才会恢复执行。总之,操作系统保证当前线程至少休眠1000毫秒,但恢复执行的时间是完全未知且不确定的
  • Thread.Sleep(0)的作用:
    该线程将自己当前剩余的时间片释放,操作系统立刻重新进行一次时间片分配,把自己这轮分配到的时间片给让出去了