当一个线程调用yield()方法时,它放弃当前CPU的使用权,让同等或更高优先级的线程执行。调用yield()方法并不会使线程进入阻塞状态,而是让线程重新进入就绪状态,等待CPU资源重新分配。
执行流程如下:
- 线程A调用yield()方法。
- 线程A放弃CPU执行权。
- 调度器从就绪队列中选择一个线程B来执行。
- 线程B获得CPU执行权并开始执行。
- 线程B执行完毕或者时间片用尽后,调度器重新选择线程A执行。
因此,yield()方法可以用来协调线程之间的执行顺序,但并不保证线程A调用yield()方法后立即就会执行线程B,具体执行顺序还受到系统调度器的影响。