Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-07, 23:17   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Matlab引擎API的线程安全

通过反复试验,我发现MATLAB引擎功能不是完全线程安全的。

有人知道规则吗?

通过反复试验发现:

在Windows上,通过COM与MATLAB的连接,因此适用COM Apartment线程规则。所有调用都必须在同一线程中发生,但是只要每个连接都是隔离的,就可以在多个线程中发生多个连接。

从下面的答案来看,在UNIX上似乎并非如此,在UNIX中,只要串行调用即可从多个线程进行调用。

回答:
刚开始使用引擎时,我没有碰到任何有关线程安全的文档,因此我认为它不是线程安全的。

我使用C ++类来同步对引擎实例的访问。对于更多的并行处理设计,我实例化了引擎类的多个实例。

(编辑)我在Solaris上使用MATLAB R14。我使用“ engOpen”调用打开引擎,然后使用“ engClose”关闭引擎。当与调用Open的线程不同的线程调用Close时,我的平台不会崩溃。
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:48


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.