Russian Qt Forum
Сентябрь 21, 2024, 20:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Многопоточный сервер, нужно мнение по поводу кол-ва потоков.  (Прочитано 13161 раз)
Antiglobalist
Гость
« Ответ #15 : Сентябрь 11, 2012, 16:55 »

Про то что на Qt хороший серв не напишешь , это я читал , но так и не понял на чем было бы лучше , кто то говорит на чистых плюсах , другие на С , третьи вообще не знакомые мне языки или библиотеки называют)
Но я пишу для себя как курсовую , мне не слишком важна эффективность , но на будущее хотелось бы знать.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #16 : Сентябрь 11, 2012, 16:56 »

на erlang или C
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #17 : Сентябрь 11, 2012, 17:16 »

Мои личные предпочтения:
- Erlang;
- Node.js;
- C - libuv, libev, libevent
- C++: Zeroc ICE, asio
Для курсовика достаточно Qt будет.
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #18 : Сентябрь 11, 2012, 18:18 »

Где то читал что на java их еще пишут. Но как бы сам не особо в курсе, сам бы наверное писал на C++ и boost.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Сентябрь 11, 2012, 19:54 »

Думаю что главное "как писать" а не "на чем". Решение "один клиент - одна нитка" очевидно, как и его минусы. А иначе (по-взрослому) это такое же "разпоточивание" задачи, как и любой другой. Это имеет мало общего с обычным "многопоточным баловством", поэтому желающих не видно, и следующий спрашивает "ну как же правильно?" имея ввиду "ну где же взять готовое" - а его-то нет  Улыбающийся
Записан
V1KT0P
Гость
« Ответ #20 : Сентябрь 11, 2012, 20:20 »

Думаю что главное "как писать" а не "на чем". Решение "один клиент - одна нитка" очевидно, как и его минусы. А иначе (по-взрослому) это такое же "разпоточивание" задачи, как и любой другой. Это имеет мало общего с обычным "многопоточным баловством", поэтому желающих не видно, и следующий спрашивает "ну как же правильно?" имея ввиду "ну где же взять готовое" - а его-то нет  Улыбающийся
Как по мне проще всего это дело делать на сигналах(не медленных как у Qt, а быстрых как у asio). Тогда просто создаешь несколько потоков и они вместе обслуживают всех клиентов. Плюс не надо морочить голову в какой поток пихать клиента.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #21 : Сентябрь 13, 2012, 09:01 »

Вообщем я понял что многопоточный сервак на Qt написать нельзя.
А тогда для чего все эти сигнало-слотовые соединения нужны,если они так медленно срабатывают Непонимающий Непонимающий Непонимающий
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #22 : Сентябрь 13, 2012, 09:27 »

Вообщем я понял что многопоточный сервак на Qt написать нельзя.

Можно Улыбающийся но работать будет не так эффективно Улыбающийся

А тогда для чего все эти сигнало-слотовые соединения нужны,если они так медленно срабатывают Непонимающий Непонимающий Непонимающий

Они работают не настолько медленно, они работают медленнее чем например бустовские сигнал\слоты или вызов по callback. Просто они не сильно хорошо подходят для высоко нагруженных серверов, где сигнало\слотовое соединения могут вызываться очень часто.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #23 : Сентябрь 13, 2012, 09:37 »

А тогда для чего все эти сигнало-слотовые соединения нужны,если они так медленно срабатывают Непонимающий Непонимающий Непонимающий

Они работают не настолько медленно, они работают медленнее чем например бустовские сигнал\слоты или вызов по callback. Просто они не сильно хорошо подходят для высоко нагруженных серверов, где сигнало\слотовое соединения могут вызываться очень часто.
[/quote]

По поводу callback функций. Ведь сигнало-слотовые соединения именно для и сделаны, чтобы отказаться от сallback функций.
А что чем чаще вызываются сигнало\слотовое соединения тем они медленее работают?
Записан
Serr500
Гость
« Ответ #24 : Сентябрь 13, 2012, 10:00 »

А что чем чаще вызываются сигнало\слотовое соединения тем они медленее работают?
Нет. Имеется в виду, что сигнал-слот жрёт больше процессорной мощности чем callback. Поэтому высоконагруженный сервис может просто "захлебнуться" - накладные расходы окажутся столь велики, что он не успеет обработать все сигналы. И тогда либо пропуск сигналов, либо "выедание" памяти для очереди сообщений и последующее падение.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #25 : Сентябрь 13, 2012, 11:13 »

Понятно Грустный И Qt c  этим никак не может совладать Непонимающий
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #26 : Сентябрь 13, 2012, 11:15 »

Хотя даже у них в примерах есть написание многопоточного сервака.
Записан
Serr500
Гость
« Ответ #27 : Сентябрь 13, 2012, 11:18 »

Понятно Грустный И Qt c  этим никак не может совладать Непонимающий
Либо скорость, либо удобство...

Хотя даже у них в примерах есть написание многопоточного сервака.
Многопоточного, но не высоконагруженного.  Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #28 : Сентябрь 13, 2012, 11:21 »

Ясно, спасибо Всем за разъяснения Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #29 : Сентябрь 13, 2012, 11:24 »

Мои личные предпочтения:
- Erlang;
- Node.js;
- C - libuv, libev, libevent
- C++: Zeroc ICE, asio
Для курсовика достаточно Qt будет.

Извините, такой вопрос Улыбающийся

А что значит для курсовика будет достаточно Qt?
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.184 секунд. Запросов: 23.