“你好,阿米戈!今天这堂课简短但有趣。我将向你介绍 Thread 类的 static 方法 yield。”

艾莉已经告诉过你,处理器不断地在线程之间进行切换。每个线程都被分配了一小段处理器时间,称为时间片。当时间到了,处理器将切换到另一个线程并开始执行其命令。调用 Thread.yield() 允许你提前结束当前线程的时间片。换句话说,它告诉处理器切换到下一个线程。

“但是为什么一个线程需要放弃自己的时间而给另一个线程呢?”

“这并不经常发生。调用 yield 意味着“我们的线程提前结束了工作”,yield 之后的命令将以一个完整的时间片开始。因此,它被中断的机会较少。特别是,如果这是一条简短的命令,即执行起来不会花很长时间。这种方法可以用来优化某些流程。”

我还可以告诉你,Thread.sleep(0) 的工作原理实际上是相同的。我认为你一开始不会使用 yield 方法,但是了解它非常有用。