Main Content

再呼び出し可能なコードの生成と呼び出し

シングルスレッド環境またはマルチスレッド環境のための再呼び出し可能なコードの生成と呼び出し

既定では、生成されたコードは、最大スタック使用量の値のサイズを超える、構成オブジェクト設定 StackUsageMax に格納される変数の static 変数を作成します。変数 static のデータは、関数呼び出し間で存続します。同様に、MATLAB® グローバルおよび永続データは関数呼び出し間で存在します。したがって、メイン関数が生成されたコードを複数のスレッドで実行する場合、不確定な競合状態が発生する可能性があります。

複数スレッドでの同時実行にさらに適したコードを生成するために、MultiInstanceCode コンフィギュレーション オプションを使用できます。このオプションを使用すると、生成されたコードは、ローカルのスレッド ストレージを超えるデータを構造体定義にラップすることで、その構造体にスレッドセーフなメモリを個別に割り当てられるようにします。同様に、コード ジェネレーターは永続およびグローバル データを独自のメモリ構造体にラップします。このメモリを共有してはいけない場合、スレッドによって使用されるデータ構造体の個々のメモリを割り当てることができます。

トピック

再呼び出し可能なコードの基礎

ワークフロー