Я хотел бы создать ThreadPollExecutor, который выполняет задачи с заданным приоритетом Process.setThreadPriority(int).ThreadPoolExecutor и приоритет потока Android
Как мне это сделать? Добавление вызова setThreadPriority в начале каждой runnable, отправленной в опрос нитей? Я также рассмотрел использование фабрики пользовательских нитей вроде этого:
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
Ваш завод кажется немного более сложным, чем нужно, я опубликую упрощенную версию. –
См. Отредактированный пост. –