Cli*_*ton 5 java swing multithreading swingworker thread-priority
在Java中有没有办法为将调用对象doInBackground()方法的线程设置优先级SwingWorker?
在Thread API中有一个setPriority()方法.该SwingWorker.execute()方法调度swingworker以在工作线程上执行.我想访问该工作线程来设置它的优先级.
根据我的理解,这个工作线程来自一个默认的工作线程池.解决这个问题的唯一方法是使用我自己的执行者吗?
JDK7 SwingWorker javadoc暗示设计者不打算让用户直接与后台线程交互或改变后台线程:
... the exact strategy of choosing a thread for any particular SwingWorker is unspecified and should not be relied on.
SwingWorker.getWorkersExecutorService()的实现似乎强化了这个想法,因为他们以一种不容易改变的方式实现它.
SwingWorker是典型案例的样板解决方案,您没有典型案例.我建议你编写代码来处理运行后台任务,而不是试图破解SwingWorker来做你想做的事情.这样,无论是谁将来维护你的代码(甚至可能是你自己!),都不会想到为什么SwingWorker没有按预期运行.
我能想到的唯一方法是让execute方法使用获取当前线程Thread.currentThread().然后,您可以设置此线程的优先级(前提是允许调用者).
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |