[Moscow.pm] Coro

Ruslan Zakirov ruslan.zakirov на gmail.com
Вт Дек 16 03:47:09 PST 2008


2008/12/16 Иван Соколов <vaneska.ru на gmail.com>:
> Приветствую.
>
> Заинтересовался вот этой штукой.
> Замена потокам в перле.
>
> Написал скрипт (Во вложении), который запускает несколько потоков.
> Каждый поток спит ( sleep int(rand(5)) ) и печатает строчку типа async n, r
> Так вот по идее все эти потоки должны запуститься параллельно,
> но получается, что каждый поток ждет предыдущего, пока он завершится.
> Но это же не параллельно нифига! Или я какой-то хитрый флаг забыл поставить?
> Или чего-то недопонял?
Недопонили чуть-чуть. Треды в перле сосут. Тут появляются корутины -
все в одном процессе (значит многоядерность не поможет) и отдавать
управление надо ручками. По умолчанию по sleep управление не
передается. Как указали ниже, есть sleep, который передает управление.

> Или для этого нужно многоядерный процессор??
>
> В общем как сделать чтобы оно действительно было параллельным?
>
> С уважением,
> Иван.
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Best regards, Ruslan.


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