2人のユーザーに割り当てられたマルチインスタンスタスクがあるとします。すべてのインスタンスには、タスクのプロパティが更新されるときにプロセス変数を変更するTaskListener
があります。両方のリスナーが一緒に実行され、同じプロセス変数を変更しようとすると、どのように状況を処理するのですか?この変更はスレッドセーフであるかどうか?どのようにしてアクチシがプロセスのプロセス変数の変更を処理しますか?
0
A
答えて
3
プロセスは、DBトランザクション内で実行されます。プロセス(またはそのリスナー)がプロセス変数を変更すると、それらはこのトランザクション内に格納/更新されます。プロセスの非同期部分が終了すると、トランザクションがコミットされます。
したがって、並列で動作する2つのプロセス実行が同じ変数を変更すると、実行の1つはトランザクションをコミットしますが、もう1つはコミットに失敗します。つまり、すべての作業が完了した後です(通常、エンジンはオプティミスティック・ロック例外をスローします)。失敗した部分は後でジョブエグゼキュータによって再実行されますが、同時に変更することは避けてください。
プロセスの実行によって異なる変数が変更された場合、それらのプロセスは両方ともトランザクションをコミットできます。
Activitiエンジンコードはスレッドセーフです。またスレッドセーフは、リスナーにとって必須です。コードがスレッドセーフでない場合は、それをリスナーで使用しないでください。
関連する問題
- 1. ダイナミックリンカはプロセスのテキストセグメントをどのように変更しますか?
- 2. プロセスC#|どのように処理をシステムトレイにするか
- 3. 複数のプロセスの処理の処理
- 4. 子プロセスのパイプライン処理は、親プロセスへのシグナルでどのように動作しますか?
- 5. プロセスのプロセス親プロセスをexplorer.exeに変更する
- 6. C++はプロセスを処理し、各プロセスのコマンドライン引数を調べます
- 7. cgiのプロセス処理
- 8. プロセスの再起動なしでプロセスによって呼び出されるdllのメソッドを変更します。
- 9. scala.sys.processを持つプロセスの環境変数を変更しますか?
- 10. MVVMでの変更追跡はどのように処理しますか?
- 11. iphone Asynch複数のプロセスをダウンロードして処理する
- 12. 可変数のMVCルートをどのように処理しますか?
- 13. nodejsモジュール変数をどのように変更しますか?
- 14. ブラウザはJavascript変数スコープをどのように処理しますか?
- 15. javaはマルチスレッドをどのように処理しますか?プロセスより多くのスレッド
- 16. laravel認証プロセスでパスワードがどのようにチェックされるかを変更します。
- 17. どのプロセスが私のDLLプロセスを作成しますか?
- 18. どのプロセスがLinuxでファイルを変更しているかを知る方法
- 19. プロセスのエラー処理C#
- 20. Linux - プロセス処理の終了
- 21. データ処理プロセスのオフロード
- 22. 実行プロセスのセッションIDとlpDesktopを変更しますか?
- 23. 実行中のプロセスの環境変数を変更する
- 24. オリエンテーションが変更されたときのレイアウトの変更はどのように処理されますか?
- 25. どのようにコンボボックスの値の変更プロセスが中断することができますか?
- 26. JavaScriptの変更を処理します
- 27. Sharepointイベント処理..どの列が変更されましたか?
- 28. 他のプロセスからのマウスイベントの処理
- 29. AccuRevを使用している店舗は、データベースの変更をどのように処理しますか?
- 30. WCFとDefaultCredentialsを使用しているときのパスワード変更をどのように処理しますか?