Какви са най-добрите практики за именуване на нишки в Java? Има ли някакви конвенции за именуване, които да следвате?
Трябва ли нишките в Java да се наименуват за по-лесно отстраняване на грешки?
Отговори (5)
Да, наименуването на нишки със сигурност помага при идентифицирането им, но с едно предупреждение: не забравяйте да им дадете уникални имена, защото можете, ако решите (или може би случайно), да използвате същото име за множество нишки.
class Thread
: Всяка нишка има име за идентификационни цели. Повече от една нишка може да има едно и също име.
Даването на няколко нишки с едно и също име може да влоши нещата и да причини объркване, вместо да помогне за отстраняването на грешки.
Работя на система, в която работят няколко Java процеса. Използвайки log4j, насочвам целия изход към един лог файл.
За да получа обща представа откъде идват изходните данни за регистриране, използвам изходния флаг на изходната нишка на log4java, който отпечатва името на изходната нишка преди съобщението за отстраняване на грешки.
Така че за мен е важно да използвам добри имена на нишки.
Работя предимно върху самостоятелни приложения на Java и понякога пълното дъмпване на нишката е всичко, с което разполагаме, за да отстраним проблем. Имената на нишките също са жизненоважни там. Те са едно от онези неща, за които всъщност не мислите, докато не ви потрябват, и всичките ви нишки се наричат „Нишка-145“ и т.н.
Това каза, че не съм виждал никакви конкретни конвенции за именуване. Използвайте нещо, което ще разпознаете по-късно, където е малко вероятно да използвате повторно имена. Може да си струва да стане ясно от името колко от тази нишка очаквате да са активни в системата, така че да можете да разберете дали имате „течове на нишки“ по-късно.
Да, наименуването на нишки би било добра практика. Ако сте използвали Eclipse Debug и ако вашето java приложение има внедрени нишки, можете ясно да видите нишките, работещи паралелно с някои произволни имена, „Нишка“, последвана от някаква числова последователност. Ако можете да дадете смислено име (отново може да се наложи да използвате последователност, но това е напълно адаптивно и зависи от вас), би било полезно по време на отстраняване на грешки.