Использовать ThreadPool для регистрации приложений? - PullRequest
0 голосов
/ 18 октября 2010

В качестве продолжения этот вопрос обсуждает использование ThreadPool против выделенного потока:

Когда бы вы использовали выделенный поток (с пониженным приоритетом) для ведения журнала всего приложения и когда бы вы использовали ThreadPool?

Ответы [ 2 ]

0 голосов
/ 18 октября 2010

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

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

0 голосов
/ 18 октября 2010

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

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

Если ведение журнала - «лучшее усилие», то с ThreadPool вполне подойдут другие ограничения на требуемую производительность и задержку вашего приложения.Асинхронный ввод-вывод для регистратора будет хорошо здесь.Поскольку вы предлагаете более низкий приоритет для вашей предполагаемой ветки логгера, это может соответствовать профилю вашего приложения.

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

...