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;
}