googleのanalyticsを入れてるのですが、「perl 排他制御」で
検索されてることが多いので、ちゃんと書いてみようと思いますww
ソースを書いちゃえばこんな感じ~
コメントはソースに書いたので、適宜見てくださいな
sub create { # 共有するセマフォキーを作る(プログラムが動く前に作っとく)
my $lockey = XXXXXX; # セマフォキー(使ってないところであればどこでも)
my $lockat = 0001000;
my $lock = semget($lockey, 1, 0666 | $lockat);
$lock = semget($lockey, 0, 0);
my $semop = pack("sss", 0, 1, 0); # セマフォを取得するコード
semop($lock, $semop);
}
sub exclusion { # 排他かけて、処理する子
my($lock, $semop);
$lock = semget($lockey, 0, 0);
if (defined($lock)) { # セマフォあった
$semop = pack("sss", 0, -1, 0);
semop($lock, $semop);
} # 排他制御をかける
....色々処理書く
$semop = pack("sss", 0, 1, 0);
semop($lock, $semop); # 排他解除
return;
}
こんな感じですが、どうでしょう??
参考になるとよいですがww
最近のコメント