フローを排他制御するには

Mutexコンポーネント

Mutexコンポーネントでは、特定のフローにIDを指定してロックを設定でき、ロックが解除されるまで他のスレッド(フロー)をブロックするよう設定できます。ロックの解除は、アンロックが実行されるか、またはフローの終了までとなります。

フローのロックを設定する

1.ロック対象のフローで、「コントロール」タブのMutexコンポーネント(「実行スレッドを排他制御します」)を配置し、各プロパティを設定する

8-157-01.png

ロックを設定する場合は、対象の箇所にMutexコンポーネントを配置し、「ロック処理」プロパティで「ロック」を指定します。

 

HINT

Mutexコンポーネントの「ID」プロパティでは、生成するロックのIDを文字列で指定します。「ID」プロパティが指定されていない場合には、「フロー名(オーナー名+プロジェクト名+フロー名)」がIDとして設定されます。

「タイムアウト(秒)」プロパティでは、ロック獲得までに待機する時間を秒単位で指定します。指定時間を経過してもロックが獲得できなかった場合はエラーとなります。「0」を指定した場合はタイムアウトは発生しません。

 

フローのアンロックを設定する

1.アンロックを指定したいフローで、「コントロール」タブのMutexコンポーネント(「実行スレッドを排他制御します」)を配置する

8-157-02.png

 

2.「ロック処理」プロパティで「アンロック」を選択し、「ID」プロパティでアンロック対象のロックIDを指定する

8-157-03.png

ロックが解除されたときに、複数のスレッドがそのIDに対して待機状態であった場合、次にロックを獲得するスレッドは、最初にロックを取得したスレッドとなります。

 

CAUTION

アンロックでは、他のスレッドのかけたロックを強制的に解除することもできるので、使い方には注意が必要です。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する