默认情况下,生成的代码创建静态
变量的大小超过最大堆栈使用值,存储在配置对象设置中StackUsageMax
.中的数据静态
变量在函数调用之间保持不变。同样,MATLAB的数据®函数调用之间存在全局变量和持久化变量。因此,如果您的main函数在多个线程中执行生成的代码,可能会发生不确定的竞争条件。
要生成更适合在多个线程中同时执行的代码,可以使用MultiInstanceCode
配置选项。当您使用此选项时,生成的代码将可能超出本地线程存储的数据包装到一个结构定义中,这样您就可以为该结构单独分配线程安全内存。类似地,代码生成器将持久数据和全局数据封装到自己的内存结构中。当不应该共享此内存时,您可以为线程使用的数据结构分配单独的内存。
可重入代码是一种可重用的编程例程,多个程序可以同时使用。
使用生成的可重用代码。
中生成可重入代码MATLAB编码器™应用程序或命令行。
在单线程环境中使用生成的可重入代码。
在多线程环境中使用生成的可重入代码。
生成可重用的、可重入的C代码。
生成使用POSIX线程(pthread)库的可重入代码。
生成使用特定于Windows的库的可重入代码®平台。
生成使用POSIX线程(pthread)库的可重入代码。