主要内容

生成和调用可重入代码

为单线程或多线程环境生成和调用可重入代码

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

要生成更适合在多个线程中同时执行的代码,可以使用MultiInstanceCode配置选项。当您使用这个选项时,生成的代码会将可能超过本地线程存储的数据包装到一个结构定义中,这样您就可以为该结构单独分配线程安全的内存。类似地,代码生成器将持久和全局数据包装到它自己的内存结构中。当不应该共享这些内存时,可以为线程使用的数据结构分配单独的内存。

主题

可重入代码基础

可重入代码

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

生成可重用代码的API

使用生成的可重用代码。

指定可重入代码的生成

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

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

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

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

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

工作流

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

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

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

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

调用可重入代码-多线程持久化数据(仅Windows)

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

调用可重入代码-多线程持久化数据(仅限UNIX)

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