的Thread.yield()
静态(爪哇)方法会导致当前执行的线程对象临时暂停,并允许其他线程执行。Thread.yield()是一个超线程CPU
如果多个线程正在执行(在具有超线程功能的CPU中),哪个线程将暂停?
的Thread.yield()
静态(爪哇)方法会导致当前执行的线程对象临时暂停,并允许其他线程执行。Thread.yield()是一个超线程CPU
如果多个线程正在执行(在具有超线程功能的CPU中),哪个线程将暂停?
调用Thread.yield
的一个...
你似乎有一个关于HT误解,HT是由硬件来处理,但需要一个线程被操作系统调度。如果一个线程产生CPU,它立即停止它的时间片,操作系统会在它的位置放置一个新的线程(或空闲进程)。另一个线程将继续正常。
从Java的角度来看,超线程CPU上的线程是不是在不同内核上运行的线程有质的不同。 (他们只是更慢......)
但是,你可能误解yield
做什么。它不保证暂停当前线程。相反,它只是线程调度程序现在运行不同线程的暗示。
如果没有其他可运行的线程,则调度程序将立即继续,只是产生的线程。
调度程序可能决定忽略该提示。
如果你想/需要当前线程真的暂停,通话sleep
或阻塞等待某一事件的发生。