Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Concurrent execution of threads

by pplshlp (Initiate)
on Nov 29, 2012 at 05:55 UTC ( #1006160=perlquestion: print w/ replies, xml ) Need Help??
pplshlp has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am trying to start 10 threads concurrently. This program does not seem to be running concurrently.
#!/usr/bin/perl use strict; use warnings; use threads; use threads::shared; 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"; sub sub1 { //do something }
Can someone please help? Is there anything that I have to add/modify? Thanks

Comment on Concurrent execution of threads
Download Code
Re: Concurrent execution of threads
by kcott (Abbot) on Nov 29, 2012 at 06:46 UTC

    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

      Thank you

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1006160]
Approved by kcott
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2015-06-03 00:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What kind of chocolate gives you the most pleasure?















    Results (116 votes), past polls