Perlでスレッドを使う

研究の都合で、Perlでスレッド使ったら早く処理が済むんじゃないかと思い立ちました。
もともと、実験の処理を行わせるスクリプトが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();
    }
}

Track Back

Track Back URL

コメントする

公開されません

refresh captcha

画像の中に見える文字を入力してください。

このページの上部へ

About

tetsuの日記・雑記です。
日々経験したことを記録していきます。

広告

サイト内検索

最近のピクチャ

  • リアディレーラ

月別アーカイブ

最近のコメント