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();
    }
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: Perlでスレッドを使う

このブログ記事に対するトラックバックURL: http://trialpc.net/mt/mt-tb.cgi/1560

コメントする

Advertizement

このブログ記事について

このページは、tetsuが2008年2月 9日 20:51に書いたブログ記事です。

ひとつ前のブログ記事は「積雪」です。

次のブログ記事は「Perl:コマンドライン引数でつまずく」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 5.0

最近のコメント

カウンタ

リンク