Perl多线程和多进程实例
(2010-01-30 12:03:16)
标签:
perl多线程多进程杂谈 |
分类: perl语言学习 |
Added by Andree
Toonk, last edited by Andree Toonk on May 27,
2009
Comment:
A Perl Thread example
#!/usr/local/roadm/bin/perl
# This is compiled with threading support
use
strict;
use warnings;
use threads;
use threads::shared;
print "Starting main program\n";
my
@threads;
for ( my $count = 1; $count <= 10; $count++) {
}
foreach (@threads) {
}
print "End of main program\n";
sub
sub1 {
}
Will
print:
Starting main program
started
thread 1
started thread 2
started thread 3
started thread 4
started thread 5
started thread 6
started thread 7
started thread 8
started thread 9
started thread 10
done with thread 1
done with 1
done with thread 2
done with 2
done with thread 3
done with 3
done with thread 4
done with 4
done with thread 5
done with 5
done with thread 6
done with 6
done with thread 7
done with 7
done with thread 8
done with 8
done with thread 9
done with 9
done with thread 10
done with 10
End of main program
Perl Fork example
This examples fork 10 child
processes.
It will wait for all childs to finish before
exiting.
#!/usr/local/roadm/bin/perl
use
strict;
use warnings;
print "Starting
main program\n";
my @childs;
for
( my $count = 1; $count <= 10; $count++) {
}
foreach (@childs)
{
}
print "End of main program\n";
sub
sub1 {
}
Output looks like:
Starting main program
started
child process for
started child process for
started child process for
started child process for
started child process for
started child process for
started child process for
started child process for
started child process for
started child process for
done with child process for 1
done with pid 5584
done with child process for 2
done with pid 5585
done with child process for 3
done with pid 5586
done with child process for 4
done with pid 5587
done with child process for 5
done with pid 5588
done with child process for 6
done with pid 5589
done with child process for 7
done with pid 5590
done with child process for 8
done with pid 5591
done with child process for 9
done with pid 5593
done with child process for 10
done with pid 5594
End of main program
来源:http://wiki.bc.net/atl-conf/pages/viewpage.action?pageId=20548191