Thread.yield() 让步线程,执行这一步的线程会主动告诉CPU调度器释放原本属于自己的资源,但是yield只是一个提示(hint),CPU调度器并不会担保每次都能满足yield提示。
java中yiled()方法的作用是:让当前处于运行状态的线程变为可运行状态,让出抢占资源的机会
用一个简单的比喻来形容就是:
三个人塞米赛跑,三人都快跑到90m位置的时候,2号突然站在原地等待,其他人继续跑,这样1号和3号赢的机会就大得多
2号就相当于调用了yield()的线程,线程调用了yiled()之后变为可运行状态,将抢占资源的机会让给其他相同优先级的线程。
yield() 方法(hint操作) 线程设置优先级也是(hint操作)
hint操作: 根据CPU的调度,hint 操作不是一定会执行的操作
|
yield()不能导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态(RUNNABLE),但有可能没有效果。
|
yield()只是对CPU调度器的一个提示
|
一个线程sleep ,另一个线程调用interrupt ,这个线程会捕获到中断信号,而yield则不会
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?