我正在编写一个自定义的Java调度程序,它根据优先级策略调度线程(在调度期间设置和修改优先级)。
但是,对于Thread.yield()
,调度程序可能会遇到死锁。例如,t1
正在调用Thread.yield()
并放弃CPU。但由于t1
仍然处于RUNNABLE
状态,我的调度程序将继续尝试安排t1
并阻止其他人。
我正在寻找一些方法来了解一个线程是否“让步”,以便调度程序可以让另一个线程运行。有什么想法吗?
答案 0 :(得分:0)
Thread.currentThread()!= threadInQuestion