|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Потоки и асинхронность25.03.2019, 11:47. Показов 12634. Ответов 100
Если есть сервер то для каждого клиента было бы логично создавать отдельный поток,но проблема в том что это очень ресурснозатратно,каким образом сделать чтобы не создавать много потоков?
0
|
|
| 25.03.2019, 11:47 | |
|
Ответы с готовыми решениями:
100
Потоки. Асинхронность Потоки и асинхронность для бота в телеграмме Асинхронность |
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 25.03.2019, 14:05 | |
|
0
|
|
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 25.03.2019, 14:10 [ТС] | |
|
Azazel-San, просто удивительно когда спрашиваешь что-то на форуме, один пишет одно, другой другое и в итоге не понимаешь кого слушать, а спросить у кого-то другого по сути нету, а с тех кто отвечал кто прав не знаешь, так что может Вы мне поможете все таки?
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 25.03.2019, 14:44 | ||
Thread pool.И так что же такое тред-пул? У нас есть некая очередь из task'ов или же заданий, так же у нас есть собсна сам тред-пул и на выходе мы имеем некие назовем их завершенные task'и. Что же такое: очередь task'ов - здесь хранится какая-то работа, которая должна быть выполнена; тред-пул - это набор потоков (или работяг?) которые постоянно берут работу из очереди и выполняют ее; завершенные task'и - когда работяга (поток) завершил свою работу мы возвращаем "что-то", что бы сообщить что работа была выполнена. Асинхронность здесь будет проявлятся в том что мы дадим работу работягам (примечание: одна и та же работа может выполнятся не одним работником (потоком), а несколькими), они ее будут делать, а когда закончат
0
|
||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||||||||||
| 25.03.2019, 14:46 | ||||||||||||
при котором неблокирующий вызов функции приводит к выполнению некоторой задачи в фоновом режиме. Когда задача выполнена, пользовательское приложение уведомляется об этом при помощи сигнала (коллбека, etc). Ассинхронный дизайн реализуется средствами многопоточной среды. (и невозможен в однопоточном режиме). В однопоточных средах можно реализовать лишь некоторое подобее ансинхронного дизайна за счет последовательного вызова множества быстрых (коротеньких) функций, с ручными проверками их состояний. Вам сейчас не нужно вникать в эти дебри. Разберитесь сначала с тем, что такое "многопоточность". И каковы базовые принципы работы тред-пулов. На каком таком основании вы вздумали тормозить исполнение задачи? И как вы вообще себе это представляете? Особенно бредово это звучит в качестве ответа на такой вопрос: Сервер не резиновый. Если он физически не справляется с нагрузкой, то ничего вы с этим уже не сделаете. Кликните здесь для просмотра всего текста
В реальности докупают более мощное железо.
И когда я пишу "докупают", то имею ввиду - ставят рядышком ещё один компьютер. Используются так называемые "балансировщики нагрузки". В упрощенном виде архитектура выглядит:
который распределяет нагрузку между множеством серверов. Он определяет, кто из серверов самый свободный, и напрявляет клиента к нему. Такая архитектура позволяет легко увеличивать мощности за счет увеличения количества компьютеров. "Клиент-серверная архитектура" - тема не для новичка. Вы с потоками сначала разберитесь. Добавлено через 44 секунды
0
|
||||||||||||
|
|
|||||||
| 25.03.2019, 14:55 | |||||||
|
К чему это я все - асинхронность != параллельность. Есть много языков программирования, которые умеют в асинхронность, но не умеют в параллельность и на них пишут в том числе и серверный бэкенд. Добавлено через 48 секунд Вот же цитата с хабра
0
|
|||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
| 25.03.2019, 15:09 | |
|
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|||||||||
| 25.03.2019, 15:10 | |||||||||
|
Что-то я не видела здесь выдержек кода. Именно для условий single-thread. Потому что, если вдруг окажется, что в single-thread нужно вручную пинать какие нибудь эвент-луп, тогда никакой это не асинхронный дизайн: Всерьёз думаете, что ася вам чем то поможет? Как вообще вы себе представляете неблокирующий вызов в single-thread? Добавлено через 38 секунд К тому же, yield запустить может только сама задача. А не какие то непонятные "вы"
0
|
|||||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 25.03.2019, 15:14 | ||
|
Ну, допустим неким оператором asynс мы вызвали функцию (впервые), затем мы прервем ее выполнение, вместо ожидания, например, файла, а все последующие вызовы await будут не запускать функцию заново, а продолжать её исполнение в точке предыдущего прерывания?
0
|
||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
||||||||
| 25.03.2019, 15:19 | ||||||||
|
Cледующая задача
Заодно скажите - на каком основании?
0
|
||||||||
|
|
||
| 25.03.2019, 15:34 | ||
|
Ну и собственно первая же ссылка в гугле https://stackoverflow.com/ques... k-protocol которая ничего не объясняет, но хотя бы намекает, что я говорю не совсем не правду.
0
|
||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||
| 25.03.2019, 15:34 | |||||
|
Я же говорил если мы ждем, например, БД или файл почему бы тогда не прервать выполнение (в теории)? и примеров мало (я не смотрел подробно)
0
|
|||||
|
|
|||
| 25.03.2019, 15:38 | |||
|
0
|
|||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
| 25.03.2019, 15:44 [ТС] | |
|
Kastaneda, то как в итоге работает асинхронность ?
Потоки идут параллельно ,или это один поток в котором функции просто выполняются по очереди (от одной к другой по мере надобности)? И еще если не сложно то хотя бы какой-то пример асинхронной однопоточной программыДобавлено через 16 секунд Kastaneda, желательно не очень сложный
0
|
|
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|||||
| 25.03.2019, 15:48 | |||||
|
Как yield вам поможет обработать 100500 клиентов? Есть множество клиентов, каждый хочет получить ответ от БД. А теперь заново прочтите старт-топик.
0
|
|||||
|
|
|||||||
| 25.03.2019, 15:55 | |||||||
Именно этот подход (я конечно показал его очень упрощено) и есть асинхронность в однопоточной среде. Например весь проект chromium на этом построен, там конечно все сложнее, плюс есть еше потоки, процессы и всякие политики потоков/процессов, но глубоко в кишках там точно такой же цикл который делает то же самое. И весь хромиум может работать на одном потоке, просто медленно, но асинхронно, поэтому там много потоков.
0
|
|||||||
|
1685 / 513 / 107
Регистрация: 17.05.2015
Сообщений: 1,524
|
|||||||
| 25.03.2019, 16:13 | |||||||
|
В этом же и заключается суть асинхронного дизайна: вы инициируете какую либо процедуру, и спокойно продолжаете дальше делать свои дела. когда ваша процедура будет выполнена - вам сообщат. Реализовать его как то ещё иначе - невозможно. Удивляют люди, которые думают: ну ведь у меня же однопоточное приложение, но ася же мне позволяет работать асинхронно! Как будто бы у аси под капотом эльфийское волшебство, а не та же самая многопоточка. Она все равно сможет обрабатывать тысячи клиентов? А то вдруг сейчас окажется, что никакая ася не волшебница, и вообще, posix с его epoll и сокетами вообще ортогонально данной теме. Добавлено через 1 минуту Или что за волшебство позволяет получать ответы асинхронно в однопоточной среде?
0
|
|||||||
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|||||||
| 25.03.2019, 16:18 [ТС] | |||||||
|
Kastaneda, окей,а теперь на конкретном примере можно? Как это реализовать на сервере,есть самый простой сервер :
Добавлено через 2 минуты eva2326, или может Вы поможете Добавлено через 1 минуту eva2326,
0
|
|||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||||||||||
| 25.03.2019, 16:36 | |||||||||||
|
Не по теме:
Все что в голове крутится, не тянет на асинхронность ну допустим, ожидание на какое-то событие, событием может быть что угодно, то же ожидание файла, да проблему ТС'a это не решает и оно синхронное, но раз уж че-то писал, то просто оставлю здесь.
![]() Не по теме:
0
|
|||||||||||
|
|
|||
| 25.03.2019, 17:05 | |||
|
Еще раз - вы путаете асинхронность и параллелизм.
0
|
|||
| 25.03.2019, 17:05 | |
|
Асинхронность?
Что такое потоки ввода, потоки вывода? Асинхронность и цикл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
Сразу отвечу: А в PvP с ним. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|