Каковы наилучшие методы именования потоков в Java? Существуют ли какие-либо соглашения об именах, которым нужно следовать?
Должны ли потоки в Java называться для облегчения отладки?
Ответы (5)
Я бы сказал, что общая передовая практика - это «выбирать хорошие имена», это относится к переменным, методам, компьютерам, возможно, даже к детям (просто спросите моего сына Герунда Экстравагаза Смита).
Так что да, выбирайте осмысленные имена для своих потоков, если это возможно.
Предположим, мы запросили соглашение об именовании файлов или компьютеров. Ожидаете ли вы, что будет общеприменимым ответ? Я думаю, что вам нужно создать собственное соглашение, которое будет иметь смысл с теми потоками, которые вы создаете.
Я бы следовал этим общим принципам:
- Коротко, давайте избегать действительно длинных именWithManyProbablyIrreleventClauses-Thread-01
- Значимо, но примите, что у вас может быть пул потоков job-01, job-02
Самая важная часть первая
01-http-Listener 01-rmi-Listener 02-http-Listener
имеет тенденцию плохо сортироваться, поэтому предпочитайте Listener-http-01
Да, именование потоков, безусловно, помогает их идентифицировать, но с одной оговоркой: обязательно давайте им уникальные имена, потому что вы можете, если захотите (или случайно), использовать одно и то же имя для несколько потоков.
class Thread
: у каждого потока есть имя для целей идентификации. Несколько потоков могут иметь одно и то же имя.
Присвоение нескольким потокам одного и того же имени может усугубить ситуацию и вызвать путаницу, а не помочь отладке.
Я работаю в системе, в которой запущено несколько процессов Java. Используя log4j, я направляю весь вывод в один файл журнала.
Чтобы получить общее представление о том, откуда поступают выходные данные журнала, я использую флаг вывода исходного потока log4java, который печатает имя исходного потока перед сообщением отладки.
Поэтому для меня очень важно использовать хорошие названия потоков.
Я работаю в основном над автономными Java-приложениями, и иногда полный дамп потока — это все, что нам нужно для отладки проблемы. Названия потоков также имеют жизненно важное значение. Это одна из тех вещей, о которых вы на самом деле не думаете, пока они вам не понадобятся, и все ваши потоки называются «Thread-145» и т. д.
Тем не менее, я не видел никаких конкретных соглашений об именах. Используйте то, что вы узнаете позже, где вы вряд ли будете повторно использовать имена. Возможно, стоит указать из названия, сколько из этого потока, по вашему мнению, будет активным в системе, чтобы вы могли позже определить, есть ли у вас «утечки потока».
Да, именование потоков было бы хорошей практикой. Если вы использовали отладку Eclipse и если в вашем Java-приложении реализованы потоки, вы можете четко видеть потоки, работающие параллельно, с некоторыми случайными именами, «Поток», за которым следует некоторая числовая последовательность. Если вы можете дать осмысленное имя (опять же, вам, возможно, придется использовать последовательность, но это полностью настраиваемое и зависит от вас), это будет полезно во время отладки.