我通过反复试验发现MATLAB引擎函数不是完全线程安全的.
有谁知道规则?
通过反复试验发现:
在Windows上,与MATLAB的连接是通过COM进行的,因此COM Apartment线程规则适用.所有调用必须在同一个线程中进行,但只要每个连接都是隔离的,就可以在多个线程中进行多个连接.
从下面的答案来看,似乎在UNIX上不是这种情况,只要串行进行调用,就可以从多个线程进行调用.
从文档中,
MATLAB库不是线程安全的.如果您创建多线程应用程序,请确保只有一个线程访问引擎应用程序.