![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
loginrl103 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
Задача: имеется ряд машин, с работающими программами. Все эти машины должны быть соединены между собой через сервер (роутер). На сервере для каждого соединения с машиной имеется свой поток. Проблема в следующем: потоки должны всё время обмениваться данными (те если клиент А (потокА) хочет отправить данные клиенту Б (потокБ), то потокА должен передать данные для отправки потокуБ), как можно осуществить сиё деяние? Обмен данными будет по всей видимости довольно интенсивный. Хотелось бы реализовать с использованием очередей сообщений, но как вот именно...если реально - желательно обойтись без тяжёловесных библиотек.
ps. linux/pthread/C. Это сообщение отредактировал(а) loginrl103 - 16.2.2009, 13:30 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
обычный per-thread список, защищенный спин-блокировкой -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
loginrl103 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.9.2008 Репутация: нет Всего: нет |
можно поконкретнее? код для примера?
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Рекомендую msgget(2). А еще лучше шаровая память shmget(2) плюс семафор(ы) semget(2). Еще можно простую трубу (pipe(2)) + select. Вариантов, как видите. немеряно. Какой наиболее интересен (объясню подробнее) ?
Это сообщение отредактировал(а) GrayCardinal - 17.2.2009, 16:50 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
зачем? это жутко не эффективно ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
MAKCim,
Не скажи... ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
более того, я не просто говорю, я утверждаю ![]() жду аргументов ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
MAKCim,
ты утверждаешь, с тебя и тесты ![]() У нас просто понятия скорости разные - вот писать на питоне, вот это действительно МЕДЛЕННО. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
я к тому, зачем использовать ядро как буфер IPC для _потоков_? ![]() знаешь сколько в ядре будет выполняться ненужных действий? (применительно к этой задаче) Добавлено через 2 минуты и 44 секунды один фиг как API вызывается -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
MAKCim,
ОК. Но труба-то тебе чем не угодила ? ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
хм а что, pipe не использует буфер в ядре (как и любой другой ядерный IPC)? ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
MAKCim,
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |