Насколько я понимаю, в Chrome процессы нужны ради того, чтобы можно было легко и безопасно прибить зависшую вкладку. И вкладкам не нужно друг с другом много общаться.
А если задачам надо много обмениваться данными друг с другом, то потоки проще гораздо. Единственное - перл не заточен под это (разделение памяти - гадость, очереди и пайпы - гадость). Я бы перл рассматривал как возможный вариант, только если на нем уже много кода написано в проекте, и переписывать на другой язык слишком дорого. On Jun 6, 2014 8:50 AM, "Victor Efimov" <[email protected]> wrote: > 6 июня 2014 г., 7:35 пользователь Vladimir Melnichenko > <[email protected]> написал: > >>Ну а если воркеры вычисления делают, т.е. CPU потребляют, будет работать? > > > > Отвечу за Антона - будет, медленней точно не станет. > Только на одном CPU. > > > Оборачиваем "воркер" в async - в цикле эти асинки складываем в массив, > > Делаем join и радуемся массиву значений. > > > Создавать под это процессы это перебор. > Вот из задания ТС не очевидно перебор это или нет, требований к > производительности нет, что воркеры делают - не написано, насколько > это задание и результат важно для ТС тоже не написано. > > > > > > > 5 июня 2014 г., 22:24 пользователь Victor Efimov <[email protected]> > написал: > > > >> 5 июня 2014 г., 22:12 пользователь Antonio Nikishaev <[email protected]> > написал: > >> > Нахрена вам разделяемая память и костыли с трубами? > > Я бы не назвал это костылями, это дефолтный способ как делается > взаимодействие между процессами в POSIX системах, есть вариации > (вместо пайпов сокеты, или IPC shared memory, может быть > mmap, passfd). Другое дело что это можно назвать велосипедом, т.к. код > приходится писать самому. Ну есть готовые модули которые что-то из > этого делают, например Parallel::ForkManager, хотя для этой задачи он > не очень то подходит. Может есть другие. Возможно универсального > модуля нет, т.к. сложно сделать один подходящий для всех применений, а > для некоторых применений есть job сервера, или просто сервера (типа > HTTP::Daemon + самостоятельный форк = уже не нужно взаимодействие > между мастером и воркерами) > > Посмотрите на браузеры - chrome использует мультипроцессинг, "признав" > его превосходство перед threads в linux, firefox использует threads, > но никому в голову не пришло использовать библиотеки для ассинхронного > ввода-вывода, на одном ядре. > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
