我想更多地了解线程睡眠解析是如何工作的,以及它与简单的 sleep() 解析之外的内容有关。
我知道它是由操作系统定义的,而在 Windows 上它通常是 15 毫秒。我最近无法通过环顾四周来确认这一点,但我隐约记得这 15 毫秒是由操作系统循环的,并且对所有线程都是“全局的”,这意味着线程可以休眠的最短时间不是 15 毫秒,而是睡眠的最大值(1)。是对的吗?所有操作系统都一样吗(超出持续时间)?
我想不出这可能很重要的情况,但是线程的虚假唤醒是否总是发生在这个睡眠周期的动作点,或者它可以随时发生?
在同步块上,等待线程是否有效地休眠(1)并在每个周期检查锁,或者退出块的线程是否立即唤醒等待线程?这对所有操作系统都一样吗?
当线程在等待()之后被通知()时,它在等待锁定时会以与上述相同的方式处理,还是不同?
从性能的角度来看,还有其他时间 15ms 循环是相关的吗?