![]() |
|
Модераторы: xvr |
![]()
|
|
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: нет Всего: 3 |
Доброго времени суток!
Есть такая POSIX-библиотека aio. В ней - функции асинхронного ввода-вывода. Возможно ли заменить модель многопоточного синхронного блокируемого сетевого взаимодействия по TCP (когда на каждое соединение создается отдельный поток, в котором происходит блокировка на функции приема) на однопоточное асинхронное(когда на каждый новый сокет вешается callback-функция, которая вызывается при появлении данных )? И будет ли это эффективно? |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 1 Всего: 39 |
Не знаю. как с callbac-ами, но вообще это делают с помощью poll/select.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| Ares4322 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 25.9.2007 Где: Россия, Москва Репутация: нет Всего: 3 |
Вы меня не поняли. Poll / select - это неблокируемый синхронный ввод-вывод. То есть, чтобы получить данные мы должны вызвать функцию приема, а в асинхронном функция сама, так сказать нас вызывает. То есть при появлении данных останавливается основной поток выполнения программы, отрабатывает callback-функция, а потом программа продолжает работать дальше.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Ares4322,
в Linux для сокетов pure асинхронная модель не поддерживается без патчинга ядра насчет обработчиков...обратите внимание на буферизируемый ввод-вывод в libevent хотя это не асинхронная библиотека -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |