
Nick
23.07.2017
15:13:53
а зачем мне ее знать?

Nikolay
23.07.2017
15:14:00

Nick
23.07.2017
15:14:14

Nikolay
23.07.2017
15:14:16
а зачем мне ее знать?
потому что если ты не понимаешь разницу между ними - ты не понимаешь предмет от слова "совсем"

Google

Nikolay
23.07.2017
15:14:27

Nick
23.07.2017
15:14:43
я сделаю 1 поток ассептор и n воркеров, с чего тут быть быстрее корутинам?

Nikolay
23.07.2017
15:14:48
если ты решил придраться, что без создания main thread не запустишь epoll и не создашь корутин - то это клиника

Nick
23.07.2017
15:15:41
да с херали?
это просто потоки)

Nikolay
23.07.2017
15:16:44
это просто потоки)
я сейчас тебе порву шаблон и напомню, что ты можешь реализовать корутины на потоках

Nick
23.07.2017
15:16:50
можешь

Nikolay
23.07.2017
15:16:52
а можешь и в одном потоке это сделать
и что будет быстрее - большой вопрос

Nick
23.07.2017
15:17:08
тогда твое утверждение о том, что они быстрее сосет вдвойне

Nikolay
23.07.2017
15:17:22

Nick
23.07.2017
15:17:51
ну ты мне скажи, за счет чего они будут быстрее?

Google

Nick
23.07.2017
15:17:54
раз ты не дурак

Nikolay
23.07.2017
15:18:00
когда у тебя много тредов - тебе как минимум надо тратить ресурсы на общение с ними

N
23.07.2017
15:18:22
Я джва года ждал годный срачик!

Nikolay
23.07.2017
15:18:23
шедулер системный будет поверх этого всего еще бегать и контекст переключать

Alex
23.07.2017
15:18:24
поэтому и написал, что корутины не будут быстрее потоков
Ты то говоришь про иногда, а теперь утверждашеь что "не будут". Будут в определенных задачах где нагрузка на io не так высока. Потоки будут кушать больше процессорного времени, поэтому и у них получше с общим io, но тк он ложится на шедулер - мы теряем скорость инициализации и имеем оверхед на синхронизацию, чего нет с сопрограммами + потоки надо чаще оборачивать механизмами синхронизации что опять чревато дрочкой смены контекста(в случае с мютексами). Здесь атомики еще спасают как-то

Nick
23.07.2017
15:18:37
1 кто тебе сказал, что я буду делать синхронизацию?)
ченел привязан к потоку, че мне там синкать то

Nikolay
23.07.2017
15:19:08
это все тяжело, в одном треде ранать корутины зачастую быстрее, но такой метод будет обрабатывать меньше соединений, чем если ты застартуешь несколько тредов и в каждом запустишь по лупу с корутинами
куда дороже, чем передача управления корутине

Nick
23.07.2017
15:19:43

Nikolay
23.07.2017
15:20:01

Nick
23.07.2017
15:20:12
они созданы уже)

Nikolay
23.07.2017
15:20:17
потоки есть потоки, хоть пулом их создавай, хоть pthread_create

Alex
23.07.2017
15:20:19
1 кто тебе сказал, что я буду делать синхронизацию?)
Ну например у тебя есть мастер и воркеры, воркеры будут иметь механизмы синхронизации друг с другом? - Будут. Те даже если оно будут иметьп прединициализацию будут происходить задержки. Но в контексте веб серверов это целесообразно тк там io нужен максимальный

Nikolay
23.07.2017
15:20:28

Nick
23.07.2017
15:20:31

Alexey
23.07.2017
15:20:51

Nikolay
23.07.2017
15:21:06
зачем?
затем, что тебе надо отсылать событие в коннектор на сокете, чтобы кинуть потом его клиенту

Google

Nikolay
23.07.2017
15:21:08
как минимум

Nick
23.07.2017
15:21:27

Alex
23.07.2017
15:21:35

Nikolay
23.07.2017
15:21:41

Nick
23.07.2017
15:21:46
я вам в пример привел netty

Alex
23.07.2017
15:22:07

Nikolay
23.07.2017
15:22:55
я вам в пример привел netty
сам по себе асинхронный сервер, который умеет только принимать коннекшены и не умеет в бизнес-логику, ни на что не годен

Nick
23.07.2017
15:23:12

Nikolay
23.07.2017
15:23:16
вот тебе вопрос на засыпку

Nick
23.07.2017
15:23:27

Nikolay
23.07.2017
15:23:43
что быстрее:
1) передать контекст управления внутри одного треда другой функции
2) отправить сообщение в тред и дождаться ответа из него

Nikolay
23.07.2017
15:24:32
можешь взять помощь зала, если не знаешь

Nick
23.07.2017
15:24:36
думаю что первое)
угадал?)

Nikolay
23.07.2017
15:24:43
бинго!
именно по этому принципу и работают однотредовые приложения на корутинах
так что твои построения с тредами выше невалидны

Nick
23.07.2017
15:25:29
так я ж ничего не перадаю между тредами, только ассептор говорит воркерам, что пора поработать
вся остальная работа идет в одном треде и это получается твои первый вариант

Google

Nikolay
23.07.2017
15:25:47

Nick
23.07.2017
15:26:20
я тебе про netty ты мне про один тред
таких систем то нет уже)

Nikolay
23.07.2017
15:26:30
это лишь один из примеров, причем не самый удачный
потому что там гибридный режим
который, разумеется, быстрее однопоточного сервера

Admin
ERROR: S client not available

Nick
23.07.2017
15:27:36
я че хотел сказать то изначально
что все зависит от реализации
и в тредах, ты можешь наворотить куда более крутые штуки
и врядли они будут медленнее корутин

Nikolay
23.07.2017
15:28:09
в тредах куда проще наворотить кучу говна

Nick
23.07.2017
15:28:30
с чего вдруг?)
мы же уже выяснили что нет

Nikolay
23.07.2017
15:28:49

Nick
23.07.2017
15:28:52
нет

Nikolay
23.07.2017
15:28:56
даю еще одну подсказку-вопрос

Google

Nick
23.07.2017
15:28:59
давай
только не про апач и нжинкс плиз

Nikolay
23.07.2017
15:29:55
ща
что быстрее:
1) навесить луп на прием событий от системы, и запускать код только когда эти события приходят, не пересылая никуда ничего
2) при приходе данных в хэндлер передавать управление этим хэндлером обработчику в потоке, который возвращает управление, только обработав данные

bebebe
23.07.2017
15:32:18
вы кто-нибудь на С писали?

Nikolay
23.07.2017
15:32:33
бонус: первое - так работает торнадо в общем случае, второе - так работает апач и прочие тредовые сервера

bebebe
23.07.2017
15:32:33
а то уже подустать можно от вашей переписки

Nikolay
23.07.2017
15:32:42

Nick
23.07.2017
15:32:45

Старый
23.07.2017
15:33:15
i7 7700hq оказался оч так себе

Nikolay
23.07.2017
15:33:21

Aleksandr
23.07.2017
15:33:44

Nikolay
23.07.2017
15:34:08

Nick
23.07.2017
15:34:18
все, я пошел
Колюня - ты не прав

Nikolay
23.07.2017
15:34:29
я про то, что нету никакого обязательства стартовать больше одного треда для обработки событий с epoll

Старый
23.07.2017
15:34:37
давайт процы обсудим

Nick
23.07.2017
15:34:37
нету, хоть 10