_nolock CRT功能

时间:2008-12-23 20:24:22

标签: multithreading visual-c++ crt

我最近发现_nolock functions的存在,我很惊讶我能找到的信息很少。它说它提高了性能,但我找不到任何基准。它还表示,如果程序自己锁定,它们可以在多线程程序中使用,但必须锁定什么?所有CRT呼叫都应该通过同一个锁吗?每个功能一个?每组功能一个?如果是这样,什么定义了群组?

你能指点我一些关于这些功能的详细信息吗?谢谢: - )

2 个答案:

答案 0 :(得分:1)

如果从多个线程访问该文件,则需要锁定对该文件的访问权限。否则,一个线程可以在另一个线程的中间写入。通过打印到stdio来试试它们以查看效果。

答案 1 :(得分:0)

如果您按照指向各个功能的链接,您将看到以下行:

  

仅在线程安全中使用此功能   上下文如单线程   应用程序或调用的地方   范围已处理线程   隔离。

对性能差异进行基准测试的唯一方法是创建一个小程序并对其进行测试。正如monjardin所指出的,您需要使用该函数锁定对您正在访问的文件的访问权限(除非在文档中指出,您处于单线程环境中)。