Java Thread.sleep()和wait()的上下文切换开销之间的差异
当执行信号量上的Thread.sleep()或wait()语句时,会发生上下文切换。在这两种情况下,上下文切换的开销是否相同?也就是说,刷新TLB和恢复寄存器和堆栈等所有步骤都将在这两种情况下执行,还是存在差异 大概是0,,可能是硬件相关的,当然不是Java规范的一部分。唤醒条件也是在软件中运行的调度程序的信息,因为调度程序在机器上的1000个线程之间切换,无论如何,如果它会做一些特殊的事情,以防您请求更改调度而不是常规调度,我会非常惊讶时间表。可能是0,可能是硬件相关的,当然不是Java规范的一部分。唤醒条件也是在软件中运行的调度程序的信息,因为调度程序在机器上的1000个线程之间切换,无论如何,如果它会做一些特殊的事情,以防您请求更改调度而不是常规调度,我会非常惊讶日程Java Thread.sleep()和wait()的上下文切换开销之间的差异,java,multithreading,synchronization,context-switch,Java,Multithreading,Synchronization,Context Switch,当执行信号量上的Thread.sleep()或wait()语句时,会发生上下文切换。在这两种情况下,上下文切换的开销是否相同?也就是说,刷新TLB和恢复寄存器和堆栈等所有步骤都将在这两种情况下执行,还是存在差异 大概是0,,可能是硬件相关的,当然不是Java规范的一部分。唤醒条件也是在软件中运行的调度程序的信息,因为调度程序在机器上的1000个线程之间切换,无论如何,如果它会做一些特殊的事情,以防您请求更改调度而不是常规调度,我会非常惊讶时间表。可能是0,可能是硬件相关的,当然不是Java规范的