2008-12-23 31 views
2

我最近發現了_nolock functions的存在,我很驚訝我在這些信息上找不到多少信息。它說它提高了性能,但我找不到任何基準。它還表示,如果程序執行自己的鎖定,那麼它們可以用於多線程程序,但是必須鎖定哪些內容?所有的CRT電話都應該通過同一個鎖嗎?每個功能一個?每組功能一個?如果是這樣,什麼定義組?_nolock CRT功能

你能指點我一些關於這些功能的詳細信息嗎?謝謝:-)

回答

1

如果您從多個線程訪問文件,則需要鎖定對該文件的訪問權限。否則,一個線程可能會寫在另一個線程的中間。試試通過打印到stdio來查看效果。

0

如果按照鏈接到各個功能,你會看到下面一行:

使用此功能僅適用於線程安全的 環境下,比如單線程 應用或呼叫 範圍已經處理線程 隔離。

基準性能差異的唯一方法是創建一個小程序並測試它。正如monjardin所指出的那樣,您需要使用該函數鎖定您訪問的文件的訪問權限(除非,如文檔中所述,您處於單線程環境中)。