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