【发布时间】:2014-01-17 12:59:24
【问题描述】:
我想创建一个 ThreadPollExecutor 来执行具有给定优先级 Process.setThreadPriority(int) 的任务。
我该怎么做?在发送到线程轮询的每个可运行的开始时添加对 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();
}
}
}
这个问题的最佳解决方案是什么?谢谢
【问题讨论】:
标签: java android multithreading parallel-processing