Thread threads => Grundwissen
(50 answers)
Opened by RPerl at 2007-01-21 18:07
Allso noch etwas ausführlicher.
Ich habe keine Möglichkeit das irgendwie zu testen (nutze nur Linux) wenn allso der Thread-aufruf irgendwie falsch ist, dann korrigiert das bitte. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 use Thread; #... sub verarbeite_10_zeilen_in_thread($) { return Thread->new(\&verarbeite_10_zeilen,$_[0]); } sub verarbeite_10_zeilen($) { my @zeilen=@$_[0]; # mach hier was du willst return("irgendwas", 42); } my @threads; my @ten_lines; my $cnt=0; open(DAT,'<',$datei) or die $!; while(my $line=<DAT>) { push(@ten_lines,$line); $cnt++; if($cnt>=10) { $cnt=0; push(@threads,&verarbeite_10_zeilen_in_thread([@ten_lines])); @ten_lines=(); } } # übrig geblibenen Zeilen verarbeiten push(@threads,&verarbeite_10_zeilen_in_thread([@ten_lines])); if(@ten_lines>0); close(DAT); my @back; push(@back,[$thread->join()]) for my $thread (@threads); mach irgendwas mit den zurückgebenen Werten in @back ... Das mit den Funktionen war ein Flüchtigkeitsfehler.\n\n <!--EDIT|topeg|1169496673--> |