On 2/8/07, Radu Oprisan <[EMAIL PROTECTED]> wrote:
Teodor Cimpoesu wrote:
>
> iacata ca "Ma indoiesc ca in bash poti sa faci asa ceva." se poate :-P
Corect... dar chestia asta, scalata la mai mult de 20 de fork-uri o sa
iti duca procesoru' in lumea ailalta :) nu ca perl-u ar fi mai smecher
[divaghez palind un pic spre OT de dragul artei...]
hm, nu vad unde ar fi problema si la 100 de fork-uri, numai sa nu
ajungi la limita de procese per utilizator
pe un server normal se tot fac fork-uri, multe servicii lucreaza asa
frecvent - ia de exemplu un apache (ma rog acolo e pre-fork, dar daca
ai incarcare mare si pui maxchild pe 5 tot face forkuri in veselie.)
fork-ul nu este tocmai costisitor in cele mai multe cazuri
pornind insa de la mesajul initial care mentioneaza "worker", termen
mai ales folosit pentru threaduri, bineinteles ca o solutie eleganta
si poate fi implementata si cu threaduri, tot din limbaj de scripting
si ca sa vezi ca e simplu e (n.b. nu zic de sincronizare nimic :-):
import threading
def do_work(arg): print "arg:", arg
threads=[]
for x in range(0,10):
threads.append(threading.Thread(target=do_work, arg=[x]))
threads[-1].start()
for th in threads: th.join()
respectiv:
use threads;
sub do_work {
print "arg: $1";
}
my @threads = [];
for $x (0..9) {
$threads[$x] = threads->new(\&do_work, $x);
}
for (@threads) { $_->join; }
ma rog, sfatul meu este sa stai departe de Perl, Python rulz :-))
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug