in reply to Re^2: multithreads newbie question
in thread multithreads newbie question
I read the documentation for detach and it scared me a little bit :)
So avoid detach and use a couple more joins:
#! perl -slw use 5.010; use strict; use threads; sub sub1 { say"sub1 starts"; say("sub1:$_"),sleep 1 for 1..3; say"sub1 + ends" } sub sub2 { say"sub2 starts"; say("sub2:$_"),sleep 1 for 1..3; say"sub2 + ends" } sub sub3 { say"sub3 starts"; say("sub3:$_"),sleep 1 for 1..3; say"sub3 + ends" } sub sub4 { say"sub4 starts"; say("sub4:$_"),sleep 1 for 1..3; say"sub4 + ends" } sub sub5 { say"sub5 starts"; say("sub5:$_"),sleep 1 for 1..3; say"sub5 + ends" } sub sub6 { say"sub6 starts"; say("sub6:$_"),sleep 1 for 1..3; say"sub6 + ends" } sub sub7 { say"sub7 starts"; say("sub7:$_"),sleep 1 for 1..3; say"sub7 + ends" } sub sub8 { say"sub8 starts"; say("sub8:$_"),sleep 1 for 1..3; say"sub8 + ends" } my $t1 = async{ sub1(); my $t = async { sub3(); }; sub4(); $t->join; }; my $t2 = async{ sub2(); my $t = async{ sub5(); }; sub6(); $t->join }; $_->join for $t1, $t2; my $t3 = async{ sub7() }; sub8(); $t3->join; print "main ends";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: multithreads newbie question
by daverave (Scribe) on Aug 10, 2010 at 14:08 UTC | |
by BrowserUk (Patriarch) on Aug 10, 2010 at 16:07 UTC |