マルチスレッド環境での再呼び出し可能なコードの呼び出し
再呼び出し可能なコードを呼び出すには、次を実行する main
関数を作成します。
ヘッダー ファイル
primary_function_name
.h. を含める。各スレッドに、グローバル メモリ割り当ての構造体
primary_function_name
StackData
にメモリを割り当てる。アルゴリズムが永続データまたはグローバル データを使用する場合に、グローバル構造体
primary_function_name
PersistentData
にメモリを割り当てる。スレッド間でやり取りがある場合、このメモリを一度のみルート プロセスに割り当てる。それ以外の場合は、スレッドごとにメモリを割り当てることができる。次の関数を呼び出すスレッド関数を含める。
primary_function_name
_initialize
.primary_function_name
.primary_function_name
_terminate
.
MATLAB® 関数を C/C++ ライブラリ関数または C/C++ 実行可能ファイルに変換する場合、MATLAB Coder™ は、2 つのハウスキーピング関数を生成します。生成された C/C++ 関数を呼び出すコード内でこれらの関数を呼び出します。詳細については、生成コードの展開を参照してください。
各スレッドを初期化し、スレッド関数への最初のパラメーターとしてメモリ割り当ての構造体へのポインターに渡す。
グローバル構造体に使用されたメモリを解放する。
マルチスレッドの例
再呼び出し可能なコードのタイプ | プラットフォーム | 参考文献 |
---|---|---|
永続データまたはグローバル データを使用しないマルチスレッド | Windows® | MATLAB コードからの再呼び出し可能な C コードの生成 |
UNIX® | 永続データまたはグローバル データを使用しない再呼び出し可能なコードの呼び出し (UNIX のみ) | |
永続データまたはグローバル データを使用するマルチスレッド | Windows | 再呼び出し可能なコードの呼び出し — 永続データを使用したマルチスレッド (Windows のみ) |
UNIX | 再呼び出し可能なコードの呼び出し — 永続データを使用したマルチスレッド (UNIX のみ) |