Страницы

Поиск по вопросам

среда, 10 октября 2018 г.

Android Thread.name

Я работаю с потоками в своем проекте. Среди прочих потоков, в двух разных классах создается две HandlerThread таким вот образом:
HandlerThread thread = new HandlerThread("ServiceThread", Process.THREAD_PRIORITY_DEFAULT);
Дальше они стартуются: thread.start();, и я использую их луперы. И только что я обнаружил, что они создаются с абсолютно одинаковыми именами (первый параметр в конструкторе - имя). Мой вопрос состоит в том, могут ли быть проблемы из за того, что у потоков одинаковые имена? Являются ли имена какими-то идентификаторами для потоков?


Ответ

Не будет проблем.
При создании нового HandlerThread вызывается конструктор:
public HandlerThread(String name, int priority) { super(name); mPriority = priority; }
Идем вглубь и видим
if (threadName == null) { this.name = "Thread-" + id; } else { this.name = threadName }
Что и есть практическим подтверждением написанного в Javadoc
Каждый поток имеет имя в целях идентификации. Более чем один поток может иметь такое же имя . Если имя не указано , когда создается поток, новое имя генерируется для него.

Комментариев нет:

Отправить комментарий