что означает число в текущем названии темы?

У меня есть вопрос о Thread при разработке Java-приложений.

Приведенный ниже код является результатом распечатки кода в методе thread.currentThread();

Thread[ForkJoinPool-1-worker-2,5,main]

Означает ли 1 индекс пула?

2 означает рабочий номер?

Я не знаю точного значения числа 1, 2, 5.

Спасибо.


person cooing pop    schedule 18.01.2021    source источник
comment
5 означает приоритет потока, 1 - это индекс пула, а 2 - индекс рабочего в текущем пуле. Вы можете получить подробную форму метода Thread toString ()   -  person TongChen    schedule 18.01.2021
comment
Некоторые виды Thread могут не иметь этих номеров. Если вы хотите, чтобы факты о конкретном Thread объекте запрашивали его методы: getId, getPriority и т. д.   -  person Basil Bourque    schedule 18.01.2021


Ответы (1)


если вы посмотрите в класс ForkJoinPull, вы можете найти один из многих конструкторов

ForkJoinPool(...){
  ....
  this.workerNamePrefix = "ForkJoinPool-" + nextPoolId() + "-worker-";
  ....
}

гдеnextPoolId() это poolNumberSequence. После инициализации workerNamePrefix будет иметь следующее значение - ForkJoinPool-1-worker-.... после этого в методе final WorkQueue registerWorker(ForkJoinWorkerThread wt) {} будет установлено имя потока в строке 1414 (wt.setName(prefix.concat(Integer.toString(tid)))) где wt это ForkJoinWorkerThread, а tid — это pid потока. Это имя вы показали в своем выводе.

person Dmitrii Bykov    schedule 19.01.2021