主要内容

生成和调用可重入的代码

针对单一或多线程环境中生成并调用可重入的代码

默认情况下,生成的代码创建静态变量的变量大小超过最大堆栈使用值,存储在配置对象设置StackUsageMax。中的数据静态变量之间存在函数调用。同样,MATLAB的数据®全局变量和函数调用之间持续存在。因此,如果您的主函数执行生成的代码在多个线程,不定会发生竞态条件。

来生成代码更适合同时执行多个线程,您可以使用MultiInstanceCode配置选项。当您使用这个选项时,生成的代码封装数据,可以超过本地线程存储结构定义,这样你就可以单独分配线程安全的内存的结构。同样,代码生成器将持续和全球数据到其自己的内存结构。当这种内存不应该共享,你可以分配单独的内存数据结构由一个线程使用。

主题

可重入代码基础

可重入代码

可重入代码是一个可重用的编程程序,多个程序可以同时使用。

API生成的可重用代码

使用生成的可重用代码。

指定代可重入的代码

生成的可重入代码MATLAB编码器™应用程序或命令行。

在单线程环境中调用可重入代码

在单线程环境中使用生成的可重入代码。

在多线程环境中调用可重入代码

在多线程环境中使用生成的可重入代码。

工作流

从MATLAB代码生成可重入的C代码

生成可重用,可重入的C代码。

调用可重入的代码没有持久或全局数据(UNIX)

生成可重入的代码使用POSIX线程pthread库。

与持久数据调用可重入的代码——多线程(Windows)

生成可重入的代码,使用特定于Windows的库®平台。

与持久数据调用可重入的代码——多线程(UNIX)

生成可重入的代码使用POSIX线程pthread库。