多线程环境中调用可重入代码
要调用可重入代码,请创建主要
功能:
包括头文件
primary_function_name
. h。对于每个线程,为全局内存分配结构分配内存
primary_function_name
StackData
.如果算法使用持久数据或全局数据,则为全局结构分配内存
primary_function_name
PersistentData
.如果线程进行通信,则将此内存分配给根进程一次。否则,您可以为每个线程分配内存。包含一个调用这些函数的线程函数:
primary_function_name
_initialize
.primary_function_name
.primary_function_name
_terminate
.
当你转换一个MATLAB®C/ c++库函数或C/ c++可执行文件,MATLAB编码器™生成两个管家功能。在调用生成的C/ c++函数的代码中调用这些函数。有关详细信息,请参见生成部署代码.
初始化每个线程,并传递一个指向内存分配结构的指针作为线程函数的第一个参数。
释放用于全局结构的内存。
多线程的例子
可重入代码的类型 | 平台 | 参考 |
---|---|---|
没有持久或全局数据的多线程 | 窗户® | 从MATLAB代码生成可重入的C代码 |
UNIX® | 无持久数据或全局数据的调用重入代码(仅适用于UNIX) | |
带有持久数据或全局数据的多线程 | 窗户 | 调用重入代码-多线程和持久化数据(仅适用于Windows) |
UNIX | 调用重入代码-多线程和持久化数据(仅适用于UNIX) |