SSブログ

資産管理電卓v0.17.71.0 追加機能説明1 [資産管理電卓(LineCalc)]

資産管理電卓v0.17.71.0の追加機能についての詳細です。

・lock 対応

prc で並列処理を行う場合共通の変数を同時にアクセスすると更新がうまくいかない場合があります。

(
 $cnt = 0 , 
 for(cnt , 1 , 100 , 1 ,prc('$cnt = $cnt + 1')),
 waitresall,
 print($cnt)
)

これは $cnt + 1 の部分が並列に処理されるので $cnt が同じ値で同時に処理する場合が起きるからです。
これを防ぐのにはある区間は並列に実行しないよう指示する必要があります。
その為に lock を使います。

lock(ID(ロック変数ID),式(実行文))

lock はロックの区間識別子として変数を指定します。
区間識別子が同じ lock が相互に排他制御されます。
大抵は操作する変数名でいいと思います。

(
 $cnt = 0 , 
 for(cnt , 1 , 100 , 1 ,prc('lock($cnt,$cnt = $cnt + 1)')),
 waitresall,
 print($cnt)
)

区間識別子が同じ lock された部分は並列にならないので遅くなります。

これで資産管理電卓v0.17.71.0の説明は終わりです。

コメント(0) 

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。