Названия тем - когда их нужно знать? - PullRequest
6 голосов
/ 18 апреля 2009

Я создал SO вопрос о соглашениях об именах для потоков некоторое время назад. Вопрос был примерно такой: «Как бы вы назвали тему?»

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

Можете ли вы привести примеры из реальной жизни, когда вам приходилось исследовать потоки и различать их, опираясь на их имена? Это не зависит от платформы / фреймворка.

Как (в какой среде) ты это сделал?

Другими словами, в каких сценариях вам приходилось решать проблему и проверять потоки по имени , и как вам это удалось?

Ответы [ 5 ]

3 голосов
/ 18 апреля 2009

При поиске утечек соединения в java иногда бывает полезно отследить объект, чтобы увидеть, каким потоком он был создан. В нашем случае это был финализатор. Это привело нас к заключению, что вещи собирались мусором, но не были завершены достаточно быстро. то есть куча материала ожидала завершения, и все это было сделано в одном потоке.

В результате мы усвоили урок о том, что нельзя полагаться на Finalize.

2 голосов
/ 18 апреля 2009

Этот вопрос в настоящее время помечен как 'linux' без видимой причины ... в любом случае, если вы используете Visual Studio, имя потока появляется в окне потоков в отладчике, поэтому, если вы отлаживаете приложение с помощью тонн нитей, благодаря названию очень просто найти «нить, которая вас интересует» в этом окне в отладчике.

Короче говоря, я просто использую его, потому что он хорошо взаимодействует с инструментами отладчика.

1 голос
/ 18 апреля 2009

Иногда на серверах приложений Java EE полезно иметь возможность отслеживать все действия в одном потоке, и им обычно присваиваются соответствующие имена в подсистеме пула, например. http-25, http-12 и т. д.

0 голосов
/ 30 октября 2013

Я использую имена потоков, чтобы помочь отладить производительность в реальном времени многопоточного приложения управления роботом, написанного с помощью цепочки инструментов Orocos. Каждый компонент работает в отдельном потоке, и я напишу сценарии оболочки, которые используют инструменты общего назначения для управления приоритетами потоков и на каких ядрах они работают (и, следовательно, косвенно, какие потоки вытесняют другие потоки и когда). Хорошая вещь в этом состоит в том, что вы можете настраивать производительность программы во время ее работы, что особенно полезно, если вы также настраиваете непрерывно выводимый показатель производительности.

0 голосов
/ 18 апреля 2009

Довольно часто действительно полезно делать дампы потоков производственных серверов, чтобы определить причины зависаний / замедлений. В этом случае обычно будет большое количество потоков в разных ролях. В Java-приложении вы можете посмотреть на кварцевые потоки и, возможно, различные пулы потоков, которые приложение использует для установления гарантий производительности. Возможно, имя пула потоков обычно более важно, чем фактическое имя потока, но имена отдельных потоков также могут иметь значение, если вы пытаетесь идентифицировать заблокированный поток. Поскольку у потоков обычно есть имя, указывающее их роль, это помогает понять, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...