|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Потоки и асинхронность25.03.2019, 11:47. Показов 12687. Ответов 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 | |
|
Асинхронность?
Что такое потоки ввода, потоки вывода? Асинхронность и цикл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|