Thread Mehrere Prozesse für Dual/Quad Core
(6 answers)
Opened by Snicker at 2008-09-05 21:24
also was mir gleich auffällt:
du machst nicht direkt nach dem fork eine abfrage, ob du im child bist oder nicht. der gesamte code nach dem fork wird also zweimal ausgeführt, vom parent und child. ausserdem wird sogar die schleife vom child ausgeführt. desweiteren erstellst du $k1 erst in der schleife, nach dem fork. du musst sie im parent und ausserhalb der schleife setzen. üblicherweise schreibt man ein fork so: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 my $pid = fork(); unless (defined $pid) { die "Could not fork $!"; } elsif (!$pid) [ # child exit; } else { # parent, inkrementiere $k1 etc. } zur demonstration mit der schleife: Code: (dl
)
1 perl -wle' wie man sieht, wird die schleife drei mal ausgeführt, zweimal vom parent und einmal vom child. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |