Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^4: Threads and print

by sandy1028 (Sexton)
on Apr 20, 2009 at 06:06 UTC ( [id://758638] : note . print w/replies, xml ) Need Help??


in reply to Re^3: Threads and print
in thread Threads and print

In place of print $log ("The threads is $tid Processing file, $file"); How to print the file names of the directory.
#! perl -slw use strict; use threads; use threads::shared; our $N ||= 100; our $t=5; our $from=1; our $filenames; sub worker { my $tid = threads->tid; # my( $log, $semRef, $from, $to ) = @_; my( $log, $semRef, $from, $step, $to ) = @_; for (my $file = $from ; $file <= $to ; $file += $step) { lock $$semRef; print $log ("The threads is $tid Processing file, $file"); } } ## A shared variable used as a semaphore for the log file resource my $logSem :shared; ## Open the log file in the main thread open my $log, ">myLog" or die $!; my @threads = map{ threads->create( \&worker, $log, \$logSem, $from + ($_ - 1), $t, $to +) ; } 1 .. $t ; ## Wait till they are done $_->join for @threads; ## close the log close $log;