WSEnableLinkLock (C 函数)
void WSEnableLinkLock ( WSLINK l )
对由 l 指定的 WSTP 连接开启线程安全.
更多信息
- 默认情况下,同时从多线程对于同样的链接调用 WSTP API 函数,WSTP 链接对象不是线程安全的. 对于一个链接对象,在调用 WSEnableLinkLock() 后,该链接可以同时被多个执行线程使用.
- 为了对一个给定链接对象维护内部数据流的完整性,线程安全引入一个小的性能损失. 为保护对一个共享资源的访问,所有使用共享资源的线程程序均会承担这种损失.
- 通过调用 WSDisableLinkLock()可以禁用线程安全.
- WSTP 的标头文件 wstp.h 已对 WSEnableLinkLock() 作出声明.
范例
基本范例 (1)
#include "wstp.h"
int main(int argc, char **argv)
{
WSENV env;
WSLINK link;
int error;
env = WSInitialize((WSEnvironmentParameter)0);
if(env == (WSENV)0)
{ /* Unable to create WSTP environment object */ }
link = WSOpenArgcArgv(env, argc, argv, &error);
if(link == (WSLINK)0 || error != WSEOK)
{ /* Unable to create link object */ }
WSActivate(link);
WSEnableLinkLock(link);
/* ... */
WSClose(link);
WSDeinitialize(env);
return 0;
}