Roman
пачка процессов по числу cpu и механизмы ipc
Vladimir
ок, он мешает выполнять код параллельно в рамках одного процесса
Vladimir
> @pragus
пачка процессов по числу cpu и механизмы ipc
да, точно так же как с event loop
Vladimir
Я и говорю - в целом те же ограничения
Roman
Vladimir
да, однопоточность означает
Roman
Vladimir
что golang?
Ale
там ж нет event loop
Roman
Vladimir
само собой
Roman
на линуксе там тот же самый epoll, который опрашивает fd
Vladimir
epoll != event loop
Roman
и то же самое переключение на кусок кода, который ожидает io из fd
Alex ZeroDub
NodeJs only has one main thread for user code, but Golang can have more than one threads for user code, so Strongloop in Nodejs will block any other code logic and Golang will not.
Roman
Alex ZeroDub
да но в 2017 найти машину только с 1 CPU core это подвиг )
Roman
Alex ZeroDub
только зачем ?
Alex ZeroDub
в общем если в вашем коде мало I/O то по факту в ноде он будет весь выполняться последовательно (читай с блоками)
Ale
breaking news
Vladimir
как и в руби, питоне, etc
Alex ZeroDub
для кого-то да. уже который раз встречаю людей для которых async io == multi threads
👁
Vladimir
👁
Roman
Dmitry
Ребят, было ли у вас такое, что нужно сделать запросы к api без авторизации? Как вы это реализовали?
Ale
сокеты?
продолжи мысль пожалуйста
Dmitry
Просто думаю как лучше сделать с точки зрения и безопасности и правильности
Roman
продолжи мысль пожалуйста
я правильно понял тезис, что как только мы хотим сделать read из сокета, то мы сгружаем это в пул тредов?
Roman
Mike
Vladimir
ничего не мешает. Я лишь говорю что это примерно то же самое, как однопоточность + event loop
Roman
Ale
Roman
Mike
процессов
Roman
а в чем проблема?
Mike
предположим у тебя массив n ^ 100, в каждом элементе хранится число, надо перебрать и отсортировать все числа по возрастанию, твои действия в разрезе "запустил много процессов"?
Roman
например, у меня есть сервис который умеет по команде передать всех обслуживаемых клиентов другому процессу.
Roman
клиенты этого даже не заметят
Roman
никаких реконнектов и прочего.
Vladimir
> @pragus
и строго говоря это тоже неверно.
вот с этим не согласен. Это как раз верно именно строго
Roman
Roman
Mike
так, вот тут подробнее ) ты положил весь массив в память, и запустил некое количество процессов, как их синкать используя общую память?
Roman
Mike
мне все равно не понятен этап синхронизации (
Roman
Mike
когда все чанки отсортированны, нужно получить тот же массив в итоге
Алдар
я б квиксортом сортировал
Ale
для параллельности лучше мерж сорт, но в конце все равно надо одним потоком все объединить в один большой массив
Mike
вот, должен быть какой-то триггер, что все n процессов закончили работу, чтобы начать объединение
Алдар
когда квиксорт разделяет массив компаратором на два, каждый подмассив отдать другому потоку
Ale
Roman
вот вариант с тредами. но с процессами там разница будет минимальна.
Roman
вариантов посигналить - миллион
Mike
забыл зачем вообще начал раздувать за мультитред (:
Alex ZeroDub
Roman
а так, стоит просто посмотреть как в postgres сделано взаимодействие между процессами. там нет тредов и всё ок.
Alex ZeroDub
ох постгрес. эталон лучшей СУБД
Alex ZeroDub
Alex ZeroDub
кручу эту СУБД уже 9 год
pyoner
Alex ZeroDub
руби уже не входит в 10ку востребованных языков. так что RIP
Dmitry
Anonymous
есть ли в nodejs что-то такое же крутое, как интерактор в руби? (https://github.com/collectiveidea/interactor)
кто где логику хранит и как вызываете?