再呼び出し可能なコードの生成と呼び出し
シングルスレッド環境またはマルチスレッド環境のための再呼び出し可能なコードの生成と呼び出し
既定では、生成されたコードは、最大スタック使用量の値のサイズを超える、構成オブジェクト設定 StackUsageMax
に格納される変数の static
変数を作成します。変数 static
のデータは、関数呼び出し間で存続します。同様に、MATLAB® グローバルおよび永続データは関数呼び出し間で存在します。したがって、メイン関数が生成されたコードを複数のスレッドで実行する場合、不確定な競合状態が発生する可能性があります。
複数スレッドでの同時実行にさらに適したコードを生成するために、MultiInstanceCode
コンフィギュレーション オプションを使用できます。このオプションを使用すると、生成されたコードは、ローカルのスレッド ストレージを超えるデータを構造体定義にラップすることで、その構造体にスレッドセーフなメモリを個別に割り当てられるようにします。同様に、コード ジェネレーターは永続およびグローバル データを独自のメモリ構造体にラップします。このメモリを共有してはいけない場合、スレッドによって使用されるデータ構造体の個々のメモリを割り当てることができます。
トピック
再呼び出し可能なコードの基礎
- 再呼び出し可能なコード
再呼び出し可能なコードは複数のプログラムで同時に使用できる再利用可能なプログラミング ルーチンです。 - 生成された再利用可能なコードの API
生成された再利用可能なコードを使用します。 - 再呼び出し可能なコードの生成の指定
MATLAB Coder™ アプリまたはコマンド ラインで再呼び出し可能なコードを生成する。 - シングルスレッド環境での再呼び出し可能なコードの呼び出し
シングルスレッド環境で、生成された再呼び出し可能なコードを使用します。 - マルチスレッド環境での再呼び出し可能なコードの呼び出し
マルチスレッド環境で、生成された再呼び出し可能なコードを使用します。
ワークフロー
- MATLAB コードからの再呼び出し可能な C コードの生成
再利用可能で再呼び出し可能な C コードを生成します。 - 永続データまたはグローバル データを使用しない再呼び出し可能なコードの呼び出し (UNIX のみ)
POSIX スレッド (pthread) ライブラリを使用する再呼び出し可能なコードを生成します。 - 再呼び出し可能なコードの呼び出し — 永続データを使用したマルチスレッド (Windows のみ)
Windows® プラットフォームに固有のライブラリを使用する再呼び出し可能なコードを生成します。 - 再呼び出し可能なコードの呼び出し — 永続データを使用したマルチスレッド (UNIX のみ)
POSIX スレッド (pthread) ライブラリを使用する再呼び出し可能なコードを生成します。