Должны потоки в Java быть названными по имени более легкой отладки?

Каковы лучшие практики вокруг именования потока в Java? Там какие-либо соглашения о присвоении имен состоят в том, чтобы следовать?

15
задан parkr 1 July 2010 в 12:42
поделиться

5 ответов

Я бы сказал, что общая передовая практика - это «выбирать хорошие имена», это относится к переменным, методам, компьютерам, возможно, даже к детям (просто спросите моего сына Герунда Экстравагаза Смита).

Так что да, по возможности выбирайте содержательные имена для ваших обсуждений.

Предположим, мы запросили соглашение об именах файлов или компьютеров. Ожидаете ли вы, что там будет общеприменимый ответ? Я думаю, что вам нужно создать собственное соглашение, которое имеет смысл с тем типом потоков, которые вы создаете.

Я бы следовал этим общим принципам:

  • Вкратце, давайте избегать действительноLongNamesWithManyProbablyIrreleventClauses-Thread-01
  • Содержательно, но согласимся с тем, что у вас может быть пул потоков job-01, job-02
  • Наиболее важная часть первый

     01-http-Listener
    01-рми-слушатель
    02-http-слушатель
    

    имеет тенденцию плохо сортировать, поэтому предпочтите Listener-http-01

7
ответ дан 1 December 2019 в 03:34
поделиться

Да, именование потоков, безусловно, помогает их идентифицировать, но с одним предостережением : убедитесь, что дали им уникальные имена, потому что вы можете, если захотите (или, возможно, случайно) используйте одно и то же имя для нескольких потоков.

class Thread : У каждого потока есть имя для идентификации. Одно и то же имя может быть у нескольких потоков.

Назначение нескольким потокам одного и того же имени может усугубить ситуацию и вызвать путаницу вместо помощи при отладке.

5
ответ дан 1 December 2019 в 03:34
поделиться

Я работаю в основном над автономными java-приложениями, и иногда полный дамп потока - это все, что у нас есть для отладки проблемы. Имена потоков там тоже очень важны. Это одна из тех вещей, о которых вы не задумываетесь, пока они вам не понадобятся, и все ваши потоки будут называться "Thread-145" и т. д.

Тем не менее, я не видел никаких особых соглашений об именах. Используйте что-то, что вы узнаете позже, где вы вряд ли будете повторно использовать имена. Возможно, стоит уточнить в имени, сколько потоков, по вашему мнению, будут активны в системе, чтобы вы могли определить, есть ли у вас "утечка потоков".

4
ответ дан 1 December 2019 в 03:34
поделиться

Я работаю в системе, в которой запущено несколько процессов Java. Используя log4j, я направляю весь вывод в один файл журнала.

Чтобы получить общее представление о том, откуда поступает вывод журнала, я использую флаг вывода исходного потока log4java, который выводит имя исходного потока перед сообщением отладки.

Поэтому для меня очень важно использовать правильные имена потоков.

4
ответ дан 1 December 2019 в 03:34
поделиться

Да, именование потоков было бы хорошей практикой. Если вы использовали Eclipse Debug и если в вашем java-приложении реализованы потоки, вы можете четко видеть потоки, работающие параллельно с некоторыми случайными именами, «Thread», за которыми следует некоторая числовая последовательность. Если вы можете дать осмысленное имя (опять же, вам, возможно, придется использовать последовательность, но это полностью настраивается и зависит от вас), это будет полезно во время отладки.

1
ответ дан 1 December 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: