У меня есть следующий код onCreate()
Log.d(TAG, "Setting priority background");
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
Log.d(TAG, Thread.currentThread().getId() + ": " + Thread.currentThread().getPriority());
Log.d(TAG, Process.getThreadPriority(Process.myTid()) + " - myTid() " + Process.myTid() + " Thread.getId() = " + Thread.currentThread().getId());
// start a thread here
Thread thread = new Thread(() -> {
Log.d(TAG, " In new thread");
Log.d(TAG, Thread.currentThread().getId() + ": " + Thread.currentThread().getPriority());
Log.d(TAG, Process.getThreadPriority(Process.myTid()) + " - myTid() " + Process.myTid() + "Thread.getId() = " + Thread.currentThread().getId());
}
Результат:
Setting priority background
1: 5
10 - myTid() 8798 Thread.getId() = 1
In new thread
7534: 10
-8 - myTid() 8819 Thread.getId() = 7534
Может кто-нибудь объяснить:
1) Несмотря на то, что я установил setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
, журнал в следующей строке показывает приоритет 5
. Почему?
2) Откуда в выводе берется -8
для приоритета второго потока?
3) Откуда берется 10
и для нового потока?
Обновление:
если я удалю строку Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
, вывод останется прежним