[Moscow.pm] Обмен данными с потоком.

Alexander Lourier aml на rulezz.ru
Пт Июн 6 01:26:21 PDT 2014


Насколько я понимаю, в Chrome процессы нужны ради того, чтобы можно было
легко и безопасно прибить зависшую вкладку. И вкладкам не нужно друг с
другом много общаться.

А если задачам надо много обмениваться данными друг с другом, то потоки
проще гораздо. Единственное - перл не заточен под это (разделение памяти -
гадость, очереди и пайпы - гадость). Я бы перл рассматривал как возможный
вариант, только если на нем уже много кода написано в проекте, и
переписывать на другой язык слишком дорого.
On Jun 6, 2014 8:50 AM, "Victor Efimov" <victor на vsespb.ru> wrote:

> 6 июня 2014 г., 7:35 пользователь Vladimir Melnichenko
> <melnichenkovv на gmail.com> написал:
> >>Ну а если воркеры вычисления делают, т.е. CPU потребляют, будет работать?
> >
> > Отвечу за Антона - будет, медленней точно не станет.
> Только на одном CPU.
>
> > Оборачиваем "воркер" в async - в цикле эти асинки складываем в массив,
> > Делаем join и радуемся массиву значений.
>
> > Создавать под это процессы это перебор.
> Вот из задания ТС не очевидно перебор это или нет, требований к
> производительности нет, что воркеры делают - не написано, насколько
> это задание и результат важно для ТС тоже не написано.
>
> >
> >
> > 5 июня 2014 г., 22:24 пользователь Victor Efimov <victor на vsespb.ru>
> написал:
> >
> >> 5 июня 2014 г., 22:12 пользователь Antonio Nikishaev <a на lelf.me>
> написал:
> >> > Нахрена вам разделяемая память и костыли с трубами?
>
> Я бы не назвал это костылями, это дефолтный способ как делается
> взаимодействие между процессами в POSIX системах, есть вариации
> (вместо пайпов сокеты, или IPC shared memory, может быть
> mmap, passfd). Другое дело что это можно назвать велосипедом, т.к. код
> приходится писать самому. Ну есть готовые модули которые что-то из
> этого делают, например Parallel::ForkManager, хотя для этой задачи он
> не очень то подходит. Может есть другие. Возможно универсального
> модуля нет, т.к. сложно сделать один подходящий для всех применений, а
> для некоторых применений есть job сервера, или просто сервера (типа
> HTTP::Daemon + самостоятельный форк = уже не нужно взаимодействие
> между мастером и воркерами)
>
> Посмотрите на браузеры - chrome использует мультипроцессинг, "признав"
> его превосходство перед threads в linux, firefox использует threads,
> но никому в голову не пришло использовать библиотеки для ассинхронного
> ввода-вывода, на одном ядре.
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20140606/26979cbb/attachment.html>


Подробная информация о списке рассылки Moscow-pm