The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Logging pthread HOWTO ;-)"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Logging pthread HOWTO ;-)"
Сообщение от Sergey Искать по авторуВ закладки on 29-Июн-02, 10:58  (MSK)
Люди добрые,

Подскажите алгоритм..  Пишется мильти-тредовый сервер, и хочется чтоб ВСЕ сообщения информационные и т.д. обрабатывались в отдельном треде.

IMHO это уберет необходимость файловых блокировок, повысит скорость.. и т.д.

Внимание вопрос.. кто нибудь такое реализовывал ?? Что делать если тред еще не готов к работе ... просто буферизировать сообщения ??

Советы и URL приветствуются..  Удачи.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Logging pthread HOWTO ;-)"
Сообщение от Soldier Искать по авторуВ закладки on 01-Июл-02, 12:29  (MSK)
>Люди добрые,
>
>Подскажите алгоритм..  Пишется мильти-тредовый сервер, и хочется чтоб ВСЕ сообщения информационные
>и т.д. обрабатывались в отдельном треде.
>
>IMHO это уберет необходимость файловых блокировок, повысит скорость.. и т.д.
>
>Внимание вопрос.. кто нибудь такое реализовывал ?? Что делать если тред еще
>не готов к работе ... просто буферизировать сообщения ??
>
>Советы и URL приветствуются..  Удачи.


Не знаю в тему или нет, идея следующая:

1. Создается некий стек сообщений
2. Создается тред для вывода сообщений

Далее основной процесс, когда нужно  вывести некое сообщение, просто помещает его в стек сообщений (используя блокировку, например pthread-овый mutex).

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Logging pthread HOWTO ;-)"
Сообщение от romanSA Искать по авторуВ закладки on 01-Июл-02, 14:47  (MSK)
>
>В треде с определенным интервалом проверяется количество сообщений, и

Вообще-то лучше использовать pthread_cond_t - условные переменные для оповещения логирующего потока о новых сообщениях в стеке (а точнее в очереди).
Преимущества этого подхода:
1. Логирующий поток более оперативно сбрасывает в лог сообщения
2. Снижается нагрузка на процессор

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Logging pthread HOWTO ;-)"
Сообщение от Soldier Искать по авторуВ закладки on 01-Июл-02, 15:08  (MSK)
>>
>>В треде с определенным интервалом проверяется количество сообщений, и
>
>Вообще-то лучше использовать pthread_cond_t - условные переменные для оповещения логирующего потока о
>новых сообщениях в стеке (а точнее в очереди).
>Преимущества этого подхода:
>1. Логирующий поток более оперативно сбрасывает в лог сообщения
>2. Снижается нагрузка на процессор

Полностью согласен, только я попытался без привязки к libpthread, а mutex привел в качестве примера, а так pthread_cond_wait и phread_cond_signal.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Logging pthread HOWTO ;-)"
Сообщение от Sergey Искать по авторуВ закладки on 02-Июл-02, 12:32  (MSK)
>
>Не знаю в тему или нет, идея следующая:
>
>1. Создается некий стек сообщений
>2. Создается тред для вывода сообщений
>
>Далее основной процесс, когда нужно  вывести некое сообщение, просто помещает его
>в стек сообщений (используя блокировку, например pthread-овый mutex).
>
>В треде с определенным интервалом проверяется количество сообщений, и если есть что
>
> сообщать, опять таки используя блокировку, эти сообщения выводятся с последующим их
>удалением из стека

Ну в общем так и сделано... использовал ФИФО и семафор..
Просто хотел узнать кто как делает.. и насколько это правильно

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру