Сравнение HandlerThread и Executors.newFixedThreadPool (1) - PullRequest
0 голосов
/ 14 октября 2018

Я тестировал в обоих классах, но в классе HandlerThread наблюдается отставание.Я отправляю много задач в очередь, и Executors.newFixedThreadPool(1) работает лучше.Почему?

Это прекрасно работает (если я отправляю задачу 20-30):

private static ExecutorService executorService= Executors.newFixedThreadPool(1);

public static void logd(String str) {
    executorService.submit(WriteLogToFile.getTaskFor(str));
}

Это работает с лагами в пользовательском интерфейсе (если я отправляю задачу 20-30, чем больше я добавляю задачичем больше лагов в пользовательском интерфейсе (зависает):

private static HandlerThread handlerThread= new HandlerThread("BLABLA");
private static Handler handler;

static{
    handlerThread.start();
    handler=new Handler(handlerThread.getLooper())
}

public static void logd(String str) {
    handler.post(WriteLogToFile.getTaskFor(str));
}
...