我有一系列生产者和消费者线程。在使用者线程中,如果队列中没有数据,我具有lock.wait()
函数可停止执行。当在生产者线程中产生数据时,lock.notify()
被调用,消费者线程退出等待状态,并移至线程调度程序以获取锁。当通知程序生产者线程释放锁定时,线程调度程序会选择一个随机线程进行处理(也可以是另一个生产者线程,但我希望它为该等待的线程提供锁定)。我的问题是,有没有办法让这些等待并通知的线程获得更高的优先级以尽快获取锁,而不是将线程调度程序视为普通线程。我已经尝试过Thread.currentthread.setPriority
,但没有用:(
答案 0 :(得分:1)
最高优先级的线程将始终无法保证获得CPU时间。 JVM有时会选择运行优先级较低的线程。
查看此链接http://journals.ecs.soton.ac.uk/java/tutorial/java/threads/priority.html