perl编程共享(二): 多线程编程
时间:2007-05-25 来源:ChangQingCao
perl多线程编程给我的总体感觉有点像Linux C POSIX多线程编程。perl多线程编程使用起来非常方便,但要深入掌握还是要下点功夫的。这里有一个简单的例子:
#!/bin/perl
use strict;
use threads;
use Cwd;
use POSIX qw(strftime); ################################################################################
# 函数名: count
# 函数描述: 数数
# 输入: name 随意输入一个名字
# 输出: 无
# 调用:
# 被调用:
# 返回:
################################################################################
sub count
{
my ($name) = @_;
my $current_time = strftime "%Y-%m-%d %H:%M:%S", localtime; for ($i = 0; $i <= 10000; $i++) { print "$current_time $name $i"; }
} 创建第一批线程 my $thread_1_01 = threads->create('count', Thread_1);
my $thread_1_02 = threads->create('count', Thread_2); my $thread_1_03 = threads->create('count', Thread_3); my $thread_1_04 = threads->create('count', Thread_4); # 等待第一批线程结束完成
$thread_1_01->join();
$thread_1_02->join();
$thread_1_03->join();
$thread_1_04->join();
# 创建第二批线程
my $thread_2_01 = threads->create('count', Thread_5); my $thread_2_02 = threads->create('count', Thread_6); my $thread_2_03 = threads->create('count', Thread_7); # 等待第二批线程结束完成
$thread_2_01->join();
$thread_2_02->join();
$thread_2_03->join();
use threads;
use Cwd;
use POSIX qw(strftime); ################################################################################
# 函数名: count
# 函数描述: 数数
# 输入: name 随意输入一个名字
# 输出: 无
# 调用:
# 被调用:
# 返回:
################################################################################
sub count
{
my ($name) = @_;
my $current_time = strftime "%Y-%m-%d %H:%M:%S", localtime; for ($i = 0; $i <= 10000; $i++) { print "$current_time $name $i"; }
} 创建第一批线程 my $thread_1_01 = threads->create('count', Thread_1);
my $thread_1_02 = threads->create('count', Thread_2); my $thread_1_03 = threads->create('count', Thread_3); my $thread_1_04 = threads->create('count', Thread_4); # 等待第一批线程结束完成
$thread_1_01->join();
$thread_1_02->join();
$thread_1_03->join();
$thread_1_04->join();
# 创建第二批线程
my $thread_2_01 = threads->create('count', Thread_5); my $thread_2_02 = threads->create('count', Thread_6); my $thread_2_03 = threads->create('count', Thread_7); # 等待第二批线程结束完成
$thread_2_01->join();
$thread_2_02->join();
$thread_2_03->join();
相关阅读 更多 +
排行榜 更多 +