|
Тема |
Re: perl & threads [re: ZeroFill] |
|
Автор |
pencho666 (от пенчилвания) |
|
Публикувано | 29.01.05 23:56 |
|
|
Това е горе долу метода. Но thread-овете в Perl са експериментални, и практически почти нищо не им работи. Ако N е по-малко от 10, може да работиш и с процеси (fork) като мастер процеса прихваща SIGCHLD и от там брои намаляването на пуснатите под деца. Това обаче също не е сигурен механизъм защото ако две деца умрат едновременно няма да получиш двоен сигнал, а само веднъж и след известен период от време се натрупват грешки. Аз силно ти препоръчвам да използваш SELECT/POLL или Non Blocking IO. Като SELECT също има известни проблеми при някой UNIX реализации (може да каже че има нещо на дескриптора а всъщност да няма, и програмата да се блокира). Като цяло моят опит (а той е наистина голям) показва че най-стабилно работи Non Blocking IO. Като изключим Threads модела, всичко друго не е проблем на Perl-а а на операционната система. За съжаление обаче се среща много често
|
| |
|
|
|