Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Thread.sleep()和wait()的上下文切换开销之间的差异_Java_Multithreading_Synchronization_Context Switch - Fatal编程技术网

Java Thread.sleep()和wait()的上下文切换开销之间的差异

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

当执行信号量上的Thread.sleep()或wait()语句时,会发生上下文切换。在这两种情况下,上下文切换的开销是否相同?也就是说,刷新TLB和恢复寄存器和堆栈等所有步骤都将在这两种情况下执行,还是存在差异

大概是0,,可能是硬件相关的,当然不是Java规范的一部分。唤醒条件也是在软件中运行的调度程序的信息,因为调度程序在机器上的1000个线程之间切换,无论如何,如果它会做一些特殊的事情,以防您请求更改调度而不是常规调度,我会非常惊讶时间表。可能是0,可能是硬件相关的,当然不是Java规范的一部分。唤醒条件也是在软件中运行的调度程序的信息,因为调度程序在机器上的1000个线程之间切换,无论如何,如果它会做一些特殊的事情,以防您请求更改调度而不是常规调度,我会非常惊讶日程