# 複数のサブジョブを並列実行

[Multi thread execution] (マルチスレッド実行)機能を使うと、ワークスペースでアクティブな複数のサブジョブを並列に実行できます。

情報メモ警告: この機能を有効にすると、globalMapオブジェクトの実装が同期化されます。それにより、globalMapオブジェクトを介して作成されたグローバル変数を使っている時に、スレッドセーフの問題からジョブを保護できるようになります。globalMapオブジェクトの詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/contexts-and-variables)をご覧ください。

以前のセクションで説明したように、ワークスペースで開かれたジョブはいくつかのサブジョブを含み、[OnSubjobOK]などのトリガーリンクを使って、実行順序をソートできます。ただし、依存項目が存在しない複数のサブジョブは、同時に起動するようにもできます。たとえば、次の図は1つのジョブに4つのサブジョブがあり、それらのサブジョブ間に依存項目がないことを示しています。

![複数のサブジョブを伴うデザインワークスペース。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-parallel_workflow.png)

この例ではtRunJobコンポーネントを使用して、各サブジョブを呼び出します。

次にワークスペースで開かれているジョブの場合、サブジョブを並列に実行するには以下のようにします:

## 手順

1. [Job] (ジョブ)タブをクリックして、次に[Extra] (追加)タブをクリックして表示します。
2. [Multi thread execution] (マルチスレッド実行)チェックボックスをオンにして、並列実行を有効にします。

   この機能はスレッド数(一般に1つのサブジョブで1スレッド)が並列実行に使用するマシンのプロセッサー数を超えない場合に最適化されます。超える場合、いずれかのプロセッサーが解放されるまで待機するサブジョブが出てきます。
3. 必要に応じて、データが処理され、バッファーがクレンジングされるまでの間に並行処理される各スレッドにバッファーとして与える行数を[Parallelize Buffer Unit Size] (バッファーユニットサイズの並列化)フィールドに入力します。

   この設定は、[Enable parallel execution] (並列実行を有効化)チェックボックスが選択されており、子ジョブまたはサブジョブにデータベース出力コンポーネントが含まれている場合のみ意味を持ちます。

   マルチスレッド実行機能を使用してジョブを並行して実行するユースケースは、をご覧ください。