Соглашения о присвоении имен для потоков?

Простое решение для Groovy:

solutionArray.sort{ new Random().nextInt() }

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

41
задан core 30 September 2008 в 05:35
поделиться

7 ответов

Нет к моему знанию никакого стандарта. За время я нашел, что эти инструкции полезны:

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

  • Создают имена, где важная часть вначале. Средства просмотра журнала в графическом интерфейсе пользователя имеют тенденцию иметь таблицы со столбцами, и столбец потока является обычно маленьким или будет сделан маленьким Вами для чтения всего остального.

  • не используют слово "поток" на имя потока, потому что это очевидно.

  • делают имена потока легко grep-способными. Избегайте подобных звучащих имен потока

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

  • избегают обобщений как "WorkerThread" (как Вы называете следующие 5 рабочих потоков?), "GUIThread" (который GUI? это для одного окна? для всего?) или "Вычисление" (что это вычисляет?).

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

  • , когда у Вас есть потоки, которые обслуживают сетевое соединение, попытайтесь включать адрес сети назначения в имя потока (например, channel_123.212.123.3). Не забывайте о перечислении хотя, если существуют многочисленные связи к тому же хосту.

, Если Вы имеете много потоков и забыли называть один, Ваш механизм журнала должен произвести уникальный идентификатор потока вместо этого (определенный для API, например, путем вызова pthread_self ())

40
ответ дан Thorsten79 4 August 2019 в 21:54
поделиться

в то время как ответ Thorsten является самым всесторонним, Вы могли бы хотеть посмотреть на то, как Tomcat называет свои Потоки. Я нашел это полезным. Мы выполняли несколько потоков с кварцевым планировщиком, и многие из именования постановляет, что Thorsten предлагает, были полезны.

Будут Вами использующий Пул потоков? Если да, то это уменьшит возможности, что можно добавить более полезную meta информацию В противном случае, небо является пределом тому, сколько полезной информации Вы можете иметь.

2
ответ дан anjanb 4 August 2019 в 21:54
поделиться

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

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

2
ответ дан William 4 August 2019 в 21:54
поделиться

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

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

0
ответ дан paxos1977 4 August 2019 в 21:54
поделиться

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

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

0
ответ дан Mike Deck 4 August 2019 в 21:54
поделиться

Я видел несколько соглашений о присвоении имен для потоков в.NET.

Некоторые предпочитают использовать 't' в начале имени (напр. Поток tMain ), но я не думаю, что он имеет любое действительное значение. Вместо этого, почему не только используют простые описательные имена (переменные строки) такой как HouseKeeping, Планировщик и так далее.

0
ответ дан Dror Helper 4 August 2019 в 21:54
поделиться

Что относительно:

[пространство имен]. [Класс] [.Class...]. [Метод] [текущий поток]?

, Таким образом, у Вас есть имена:

Бизнес. Кэширование. Бизнес ExpireDeadItems1
. Кэширование. Бизнес ExpireDeadItems2
. Кэширование. ExpireDeadItems3

и т.д., для каждого потока.

1
ответ дан core 4 August 2019 в 21:54
поделиться