もともと、実験の処理を行わせるスクリプトがPerlで書かれているというのもあるんですが、
あまり使い慣れてはないので、一瞬「スレッドをサポートしてるんかな?」とか思って
しまいました。でも、今さらそんなわけないですよね。
googleを使って調べてみると、簡単なサンプルが落ちていました。
[web] Perlでマルチスレッド - 結城浩
これってほとんどJavaと同じような感覚で使えますよね。
Javaなら、Runnableインターフェースを実装したクラスのインスタンスをThreadに与えて
runメソッドを呼び出して、joinメソッドでスレッドの終了を見届ける(?)ので、
それと置き換えて考えれば簡単に覚えられそうです。
以下がそのサンプルプログラムです。
(利用される場合は自己責任でどうぞw)
use strict;
use threads;
my $thread1 = threads->new(\&main, "One");
my $thread2 = threads->new(\&main, "Two");
$thread1->join;
$thread2->join;
print "done.\n";
sub main {
my ($name) = @_;
for (1..10) {
print "I am $name ($_)\n";
threads->yield();
}
}
コメントする