2
我想创建一个ThreadPollExecutor来执行给定优先级的任务Process.setThreadPriority(int)。ThreadPoolExecutor和Android的线程优先级
我应该怎么做?在发送给线程轮询的每个可运行的开始时,将调用添加到setThreadPriority?
private final static class ProcessPriorityThreadFactory implements ThreadFactory {
private final int threadPriority;
public ProcessPriorityThreadFactory(int threadPriority) {
super();
this.threadPriority = threadPriority;
}
@Override
public Thread newThread(Runnable r) {
return new Thread(new PriorityChangeWrapper(r, threadPriority));
}
private final static class PriorityChangeWrapper implements Runnable {
private final Runnable originalRunnable;
private final int threadPriority;
public PriorityChangeWrapper(Runnable originalRunnable, int threadPriority) {
super();
this.originalRunnable = originalRunnable;
this.threadPriority = threadPriority;
}
@Override
public void run() {
Process.setThreadPriority(threadPriority);
originalRunnable.run();
}
}
}
,这是什么问题,最好的解决办法:我使用自定义线程工厂这样也算?谢谢
奥基,我不是很在多线程经验,需要确认,非常感谢你 – Addev
你的工厂似乎比需要更复杂一点,但我会发布一个简化版本。 –
查看编辑后。 –