MLEnableLinkLock (C 函数)

MLEnableLinkLock 已经被 WSEnableLinkLock 所取代.

void WLEnableLinkLock ( MLINK l )

对由 l 指定的 MathLink 连接开启线程安全.

更多信息

  • 默认情况下,同时从多线程对于同样的链接调用 MathLink API 函数,WolframLink 链接对象不是线程安全的. 对于一个链接对象,在调用 MLEnableLinkLock() 后,该链接可以同时被多个执行线程使用.
  • 为了对一个给定链接对象维护内部数据流的完整性,线程安全引入一个小的性能损失. 为保护对一个共享资源的访问,所有使用共享资源的线程程序均会承担这种损失.
  • 通过调用 MLDisableLinkLock()可以禁用线程安全.
  • MLEnableLinkLock() 在 MathLink 的标头文件 mathlink.h 中被声明.

范例

基本范例  (1)

#include "mathlink.h"

int main(int argc, char **argv)
{
    MLENV env;
    MLINK link;
    int error;

    env = MLInitialize((MLEnvironmentParameter)0);
    if(env == (MLENV)0)
    { /* Unable to create MathLink environment object */ }

    link = MLOpenArgcArgv(env, argc, argv, &error);
    if(link == (MLINK)0 || error != MLEOK)
    { /* Unable to create link object */ }

    MLActivate(link);

    MLEnableLinkLock(link);

    /* ... */

    MLClose(link);
    MLDeinitialize(env);

    return 0;
}