3.12. マルチスレッド

3.12.1. マルチスレッド

以下の文では、論理技術の 2 種類のマルチスレッドを利用します。技術マルチスレッド (Technical multi-threading) は、複数のスレッドやプロセスがコンピューター上で Java や C プログラムなどにより開始された場合に発生します。また、論理マルチスレッド (Logical multi-threading) は、プロセスが並行ゲートウェイに到達した後に BPM プロセスで見られるマルチスレッド化のことです。機能的には、元のプロセスは 2 つのプロセスに分割され、並行して実行されています。
BPM エンジンは、論理マルチスレッドに対応しています。例えば、並行ゲートウェイを含むプロセスに対応しています。1 つのスレッドを使用して論理マルチスレッドを実装するようにしているため、論理マルチスレッドを含む BPM プロセスは技術スレッド 1 つでのみ実行されます。これの主な理由は、複数の (技術) スレッドが同じプロセスにある場合、それぞれステータスの情報をやり取りできる状態でなければなりません。この要件によりいくつか複雑になっています。マルチスレッドにより、パフォーマンスの面で利点がでてくるように見えますが、別のスレッド間で各自に連携されるように、余分なロジックが必要になってきます。つまり、スレッド間での連携が取れる保証がないのです。競合やデッドロックを避ける必要があるため、オーバーヘッドも余計に発生してきます。