Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
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 avoiding work at the Monastery: (10)
As of 2014-09-02 19:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (29 votes), past polls