1. 首页
  2. 编程语言
  3. C
  4. Julia中多线程环境下调用MATLAB Engine的注意事项

Julia中多线程环境下调用MATLAB Engine的注意事项

上传者: 2024-04-29 15:40:16上传 RAR文件 672.25KB 热度 7次

Julia中使用MATLAB Engine的线程安全问题

MATLAB Engine本身并非线程安全的。这意味着,在一个线程中创建的Engine实例无法在其他线程中直接使用。

示例场景:

假设我们在 Main_thread 中通过 engOpen 创建了一个MATLAB Engine实例 m_pEngine,并希望在 entry_new_thread 线程中使用该实例调用MATLAB函数。由于线程安全限制,这种情况下 Engine 函数调用将无效,即使 m_pEngine 指针在 entry_new_thread 线程中仍然存在。

解决方案:

为确保线程安全,MATLAB Engine的创建和使用必须在同一个线程内完成。这意味着,如果需要在多个线程中使用MATLAB功能,则需要在每个线程中分别创建独立的Engine实例。

用户评论