Compiler SDK による C++ ライブラリはマルチスレッドをサポートしますか?

4 次查看(过去 30 天)
MATLAB Compiler SDK を使って MATLAB 関数をコンパイルしています。この関数は同時ユーザーがいるアプリ内で呼び出されます。これはサポートされますか?

采纳的回答

MathWorks Support Team
MathWorks Support Team 2026-1-13,0:00
C++ MATLAB Data API を使用する場合、ランタイムはインプロセスモードまたはアウトオブプロセスモードのいずれかで起動できます。
インプロセスモードで実行する場合、インタープリタスレッドは1本のみで、ライブラリへのすべての呼び出しは直列化されます。この場合、同時実行性によるメリットはありません。
アウトオブプロセスモードで実行する場合、作成される各ライブラリオブジェクトごとに独立した MVM サーバーが起動されます。したがって、各スレッドから initMATLABLibrary を呼び出せば、各スレッドは自身のインタープリタを持つことになり、スレッドは MATLAB コードを同時に実行できます。ただし、MATLAB Runtime はプロセス外で動作するため、プロセス間でデータをやり取りする必要があるというトレードオフがあります。全体として、この場合に性能向上が得られるかどうかは、ランタイムプロセス間で転送すべきデータ量と、ライブラリコードが実行する処理量の相対関係に依存します。
また、アウトオブプロセス機能は広く使われてきたわけではないため、インプロセスほど安定していません。
さらに、mwArray API ではアウトオブプロセスモードはサポートされません。つまり、mwArray API はマルチスレッドをサポートしません。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 C++ mwArray API 共有ライブラリの統合 的更多信息

标签

尚未输入任何标签。

产品


版本

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!