Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484

Потоки и асинхронность

25.03.2019, 11:47. Показов 12650. Ответов 100

Студворк — интернет-сервис помощи студентам
Если есть сервер то для каждого клиента было бы логично создавать отдельный поток,но проблема в том что это очень ресурснозатратно,каким образом сделать чтобы не создавать много потоков?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2019, 11:47
Ответы с готовыми решениями:

Потоки. Асинхронность
Уважаемые специалисты, помогите пожалуйста с определениями, прошу не давать ссылки на msdn, потому что уже все там перечитал, но вникнуть...

Потоки и асинхронность для бота в телеграмме
Здравствуйте! В двух словах, что делаю: пишу бота, играющего в города для telegram. Но вот проблема: все пользователи, пишущие боту,...

Асинхронность
Добрый день, у меня такая проблема. Создал поток, запустил его и программа заглючивает, но действие выполняет. Дело в том что сама...

100
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 00:44
Студворк — интернет-сервис помощи студентам
Если строки 94-96 убрать, то будет для одного.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 00:52  [ТС]
shmkv, Тоесть никак проще этот процесс нельзя написать? Возможно реально написать код короче и яснее, опять же таки я не говорю что так можно, только возможно
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 01:18
Цитата Сообщение от ReYalp Посмотреть сообщение
Тоесть никак проще этот процесс нельзя написать?
Код можно укоротить (убрать класс сессии, сделать лямбды), но в плане asio убирать особо него: все и так предельно просто и коротко. Опять же, если проблемы с восприятием C++, то вряд ли мой пример будет легче читаться, даже если он и будет короче.
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
26.03.2019, 01:24
ReYalp,
Исходя из вопросов которые вы задаёте делаю вывод что вам рано еще разбираться с тем как реализовать эффективный сервер. Вы сделайте хотя бы неэффективный с минимальным набором функций: приём и обработка соединений, логирование данных клиентов (айпи, порт), можете прикрутить и кэш.

А потом уже будете разбираться с потоками, асинхронщинами, еполами и прочим...
Сделайте как можете и не занимайтесь преждевременной оптимизацией.
А когда все будет работать, ищите способ как улучшить.

И ещё, вам люди тут хоть как то стараются помочь а от вас слова благодарности особо не наблюдаются...
Вы считаете это нормальным?
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 01:37  [ТС]
Undisputed, Вы от части не правы,суть в том что
Цитата Сообщение от Undisputed Посмотреть сообщение
приём и обработка соединений, логирование данных клиентов
это я уже научился делать и перешел к следующему шагу,хочу сделать >1 клиента на сервере которые смогут нормально отправлять запросы,создал эту тему и начались споры ,кого слушать - не пойму,а вот в даном случае помощи особой то и небыло,я прошу у человека одно объяснить ,он мне совсем другое рассказывает и что я могу с этим сделать?
shmkv, с С++ проблем нету,как раз есть вопросы к boos::asio и их очень много,возможно они покажутся глупыми но какая разница между winsock и boost::asio sock,не должно же быть никакой по сути?
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
26.03.2019, 01:58
ReYalp,
Что значит нормально отправлять запросы и почему сейчас считается что клиенты отправляют запросы ненормально?

Можете мне не верить, но по вопросам которые вы задаёте явно видно что вам ещё рано писать эффективный сервер.
Да и не вся тема сплошной спор. Тут уже прилично накидали ключевых слов реализации которых используются в эффективных серверах. Осталось поискать, изучать...
Если вы думаете что вам тут парой строчек опишут как реализовать эффективный сервер то зря тратите время.
Лучше читайте книги о сетевом программировании. Как вариант: UNIX. Разработка сетевых приложений
Короче говоря, разбираться придется не мало, если это действительно вам нужно.
1
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:07  [ТС]
Undisputed, какие именно я задавала вопросы что Вы смогли понять что мне рано учить что-то дальше?
Цитата Сообщение от Undisputed Посмотреть сообщение
Что значит нормально отправлять запросы и почему сейчас считается что клиенты отправляют запросы ненормально?
В моем случае нормально значит безпрепятственно, а вот насчет всего того что советовали так в основном это boost::asio,окей,допустим ,но я попросил информацию о том как работает асинхронность и никто не дал точного ответа(под ответом имеется ввиду не описание как она работает в паре слов,а именно пример и т.д.),вот еще посоветовали почитать о IOCP ,как ни странно нашел статью на даную тему и мне она показалась довольно интересной,собираюсь завтра побольше узнать об этом,так что все таки,как мне кажется,Вы не совсем правы и все таки мне интересно по каким таким вопросам Вы решили что мне рано писать эфективный сервер?
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:11
Цитата Сообщение от ReYalp Посмотреть сообщение
но какая разница между winsock и boost::asio sock,не должно же быть никакой по сути?
Этот вопрос мне кажется странным. Что понимается под разницей? Хотя бы на примере.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:18  [ТС]
shmkv, извините пожалуйста,я имел ввиду слово "различия"
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
26.03.2019, 02:20
ReYalp,
Далеко идти не будем. Вот, например вопрос, который подчеркнули выше.

А Асинхронно значит сделать вызов и работать дальше не дожидаясь завершения вызова.
Задача которая возникла похожу вызова будет решаться в фоновом режиме
И при желании можно получать уведомления связанные с состоянием этой задачи
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:23
Цитата Сообщение от ReYalp Посмотреть сообщение
В моем случае нормально значит безпрепятственно
А что препятствует?
Цитата Сообщение от ReYalp Посмотреть сообщение
но я попросил информацию о том как работает асинхронность
Тут я исчерпывающе вам ответил как работает асинхронность.
Цитата Сообщение от ReYalp Посмотреть сообщение
а именно пример
Примеры реализации тут были. Чего еще не хватает?
Цитата Сообщение от ReYalp Посмотреть сообщение
как ни странно нашел статью на даную тему и мне она показалась довольно интересной
А если еще погуглить, как ни странно, то можно много найти статей по теме.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:29  [ТС]
Undisputed,
Цитата Сообщение от ReYalp Посмотреть сообщение
под ответом имеется ввиду не описание как она работает в паре слов,а именно пример и т.д.


Добавлено через 6 минут
shmkv,
Цитата Сообщение от shmkv Посмотреть сообщение
В моем случае нормально значит безпрепятственно
так я же уже описывал что препятствует) Я же писал что у меня не получается написать нормальынй сервер из-за того что я не умею использовать асинхронность,а создаю для каждого клиента отдельный поток(я даже писал что два),вот из-за этого я и пришел сюда,
Цитата Сообщение от shmkv Посмотреть сообщение
Примеры реализации тут были. Чего еще не хватает?
во-первых я попросил конкретный пример на сервере с одним клиентом и я уверен что его можно реализовать без boost::asio,чтобы было понятнее ,во-вторых где был хотя бы один пример кода с асинхронностью без boost::asio? Или Вы считаете что если человек приходит на форум и просит о помощи и Вы ему кидаете код сервера то это ему что-то даст?
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:30
Цитата Сообщение от ReYalp Посмотреть сообщение
shmkv, извините пожалуйста,я имел ввиду слово "различия"
Это библиотеки разного уровня и я считаю некорректным их как-то сравнивать. Более того, asio внутри себя использует winsock.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:36  [ТС]
shmkv, а вот насчет темы IOCP большое спасибо,до создания этой темы даже не слышал об этом.

Добавлено через 4 минуты
shmkv, Я теперь понял что asio внутри себя использует winsock но я именно спрашивал в чем разница между созданным сокетом winsock и созданным сокетом boost::asio ,просто уточнил
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:39
Цитата Сообщение от ReYalp Посмотреть сообщение
во-первых я попросил конкретный пример на сервере с одним клиентом и я уверен что его можно реализовать без boost::asio
Можно, будет сложнее.
Цитата Сообщение от ReYalp Посмотреть сообщение
во-вторых где был хотя бы один пример кода с асинхронностью без boost::asio?
https://github.com/Microsoft/W... rverex.Cpp
Без всякого мерзкого asio замечу. Намного проще?

Добавлено через 1 минуту
Цитата Сообщение от ReYalp Посмотреть сообщение
Или Вы считаете что если человек приходит на форум и просит о помощи и Вы ему кидаете код сервера то это ему что-то даст?
За всех ответить не могу, но мне бы много дало.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:42  [ТС]
shmkv,
Цитата Сообщение от shmkv Посмотреть сообщение
Без всякого мерзкого asio замечу. Намного проще?
но зато с iocp,но не в этом суть,Вы хотите сказать что этот весь код простой пример асинхронности для сервера который принимает только одного клиента? Если так то извините ,я был ранее не прав
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:42
Цитата Сообщение от ReYalp Посмотреть сообщение
Я теперь понял что asio внутри себя использует winsock но я именно спрашивал в чем разница между созданным сокетом winsock и созданным сокетом boost::asio ,просто уточнил
Вы сравниваете теплое с мягким: хэндл сокета и объект класса.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 02:43  [ТС]
shmkv,
Цитата Сообщение от shmkv Посмотреть сообщение
За всех ответить не могу, но мне бы много дало
,ну разве исходник ода может много дать? Если человек вообще не изучал до этого какую-то тему ,а ему показывают код с использованием инструментов с нее то разве такой подход разумен?
0
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
26.03.2019, 02:47
Цитата Сообщение от ReYalp Посмотреть сообщение
Вы хотите сказать что этот весь код простой пример асинхронности для сервера который принимает только одного клиента?
Принимает несколько, но для 1 код не будет проще.
0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
26.03.2019, 03:23  [ТС]
shmkv, разве вместо этого всего нельзя было с самого начала ответить что одно это объект класса ,а второе дескриптор сокета?

Добавлено через 1 минуту
shmkv, хорошо есть boost::asio ,есть iocp ,а что тогда лучше использовать?

Добавлено через 34 минуты
shmkv, и еще хотел бы от Вас "услышать" так же как Вы описывали как работает асинхронность ,как работает IOCP и вообще его описание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2019, 03:23

Асинхронность?
Уже как то создавал подобную тему, но моя текущая реализация меня не устраивает чуть более чем полностью, создам новую. Есть у меня некая...

Асинхронность
Всем привет) Я новичек в ноде, разрабатываю веб сервер. this.tokens.get(token, function(msg, that) { if (msg) { ...

Асинхронность в js
почему в консоле не находит переменную obj, но когда убираю setTimout, только тогда находит async function regUser() { ...

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

Асинхронность и цикл
Здравствуйте! Не могу понять как правильно сделать перебор всех страниц сайта и у каждой странице сделать свою выборку?Чет я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru