http://www.perlmonks.org?node_id=1006171


in reply to Concurrent execution of threads

G'day pplshlp,

// introduces a comment in a number of languages but not in Perl. You need a # in Perl.

With your code, I get:

Bareword found where operator expected at -e line 20, near "//do somet +hing" (Missing operator before something?) syntax error at -e line 21, near "//do something "

Changing //do something to #do something, I get:

Starting main program End of main program

I don't see a concurrency issue:

$ perl -e ' use strict; use warnings; use threads; use threads::shared; print "Started at: ", time, "\n"; print "Starting main program\n"; my @threads; for ( my $count = 1; $count <= 10;$count++) { my $t = threads->new(\&sub1); push(@threads,$t); } foreach (@threads) { $_->join; } print "End of main program\n"; print "Stopped at: ", time, "\n"; sub sub1 { print "Called at: ", time, "\n"; sleep 2; #do something } ' Started at: 1354171101 Starting main program Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 Called at: 1354171101 End of main program Stopped at: 1354171103

-- Ken

Replies are listed 'Best First'.
Re^2: Concurrent execution of threads
by pplshlp (Initiate) on Nov 29, 2012 at 09:29 UTC
    Thank you