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
你的工廠似乎比需要更復雜一點,但我會發佈一個簡化版本。 –
查看編輯後。 –