Java 在线程计划程序中为已等待并通知的线程设置优先级
我有一系列的生产者和消费者线程。在使用者线程中,我有一个Java 在线程计划程序中为已等待并通知的线程设置优先级,java,multithreading,java-threads,thread-synchronization,Java,Multithreading,Java Threads,Thread Synchronization,我有一系列的生产者和消费者线程。在使用者线程中,我有一个lock.wait()函数,在队列中没有数据时停止执行。当数据在生产者线程中生成时,调用lock.notify(),消费者线程从等待状态出来,并移动到线程调度程序以获取锁。当notifier producer线程释放锁时,线程调度程序会选择一个随机线程进行处理(它也可以是另一个producer线程,但我希望它为这个等待的线程提供锁)。我的问题是,有没有一种方法可以让这些等待和通知的线程获得更高的优先级,以尽快获得锁,而不是将线程调度程序视为
lock.wait()
函数,在队列中没有数据时停止执行。当数据在生产者线程中生成时,调用lock.notify()
,消费者线程从等待状态出来,并移动到线程调度程序以获取锁。当notifier producer线程释放锁时,线程调度程序会选择一个随机线程进行处理(它也可以是另一个producer线程,但我希望它为这个等待的线程提供锁)。我的问题是,有没有一种方法可以让这些等待和通知的线程获得更高的优先级,以尽快获得锁,而不是将线程调度程序视为普通线程。我尝试了Thread.currentthread.setPriority
,但它不起作用:(最高优先级的线程将始终获得CPU时间,但不保证CPU时间。JVM有时可能会选择运行优先级较低的线程
查看此链接