Трябва ли нишките в Java да се наименуват за по-лесно отстраняване на грешки?

Какви са най-добрите практики за именуване на нишки в Java? Има ли някакви конвенции за именуване, които да следвате?


person parkr    schedule 01.07.2010    source източник


Отговори (5)


Как бихме го направили в C?
person djna    schedule 01.07.2010

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

class Thread: Всяка нишка има име за идентификационни цели. Повече от една нишка може да има едно и също име.

Даването на няколко нишки с едно и също име може да влоши нещата и да причини объркване, вместо да помогне за отстраняването на грешки.

person polygenelubricants    schedule 01.07.2010
comment
Лесен начин да получите уникални имена за нишки е да използвате ThreadFactoryBuilder на Guava. Можете да извикате `.setNameFormat(MyThread-%s) и той автоматично ще попълни последователни цели числа. guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/ - person Kevin Bourrillion; 01.07.2010
comment
Или, ако не искате да импортирате цяла библиотека само за да създадете ThreadFactory, можете просто да имплементирате ThreadFactory. j.u.c.Executors$DefaultThreadFactory на Sun предлага хубава начална реализация, която е сравнително лесна за модифициране. - person Tim Bender; 02.07.2010

Работя на система, в която работят няколко Java процеса. Използвайки log4j, насочвам целия изход към един лог файл.

За да получа обща представа откъде идват изходните данни за регистриране, използвам изходния флаг на изходната нишка на log4java, който отпечатва името на изходната нишка преди съобщението за отстраняване на грешки.

Така че за мен е важно да използвам добри имена на нишки.

person Jonathon Faust    schedule 01.07.2010

Работя предимно върху самостоятелни приложения на Java и понякога пълното дъмпване на нишката е всичко, с което разполагаме, за да отстраним проблем. Имената на нишките също са жизненоважни там. Те са едно от онези неща, за които всъщност не мислите, докато не ви потрябват, и всичките ви нишки се наричат ​​„Нишка-145“ и т.н.

Това каза, че не съм виждал никакви конкретни конвенции за именуване. Използвайте нещо, което ще разпознаете по-късно, където е малко вероятно да използвате повторно имена. Може да си струва да стане ясно от името колко от тази нишка очаквате да са активни в системата, така че да можете да разберете дали имате „течове на нишки“ по-късно.

person Curtis    schedule 01.07.2010

Да, наименуването на нишки би било добра практика. Ако сте използвали Eclipse Debug и ако вашето java приложение има внедрени нишки, можете ясно да видите нишките, работещи паралелно с някои произволни имена, „Нишка“, последвана от някаква числова последователност. Ако можете да дадете смислено име (отново може да се наложи да използвате последователност, но това е напълно адаптивно и зависи от вас), би било полезно по време на отстраняване на грешки.

person bragboy    schedule 01.07.2010