2

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

您能否指出有关这些功能的一些详细信息?谢谢 :-)

4

2 回答 2

1

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

于 2008-12-23T20:31:00.617 回答
0

如果您点击各个函数的链接,您将看到以下行:

仅在线程安全上下文中使用此函数,例如单线程应用程序或调用范围已处理线程隔离的情况。

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

于 2008-12-23T20:39:09.803 回答