看板 C_and_CPP 關於我們 聯絡資訊
VC++中, 盡可能使用 CRT 的 _beginthreadex 少用 WIn32 API CreateThread 原因是 CreateThread 有機會造成記憶體洩漏, 或是不能保證 thread-safe _beginthreadex 其實也是呼叫 CreateThread 並多增加一些操作來避免上述問題發生 看到這裡, 有點混淆了 CRT 和 Win32 API 的關係 CRT 應該是比較底層, 上層是 Win32 API 但 _beginthreadex 的說明, 又好像 Win32 API 再底層 兩者間是怎樣的關係呢? 請各位大大解惑,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.60.117
LPH66:CRT 會用 Win32 API 來達成所要求的功能 12/06 22:03
LPH66:你想一下 I/O 之類的函式就知道了 12/06 22:03
LPH66:或者換句話說 Win32 API 角色有點像是 Linux 的 system call 12/06 22:04
LPH66:都是直接跟作業系統要求工作的介面 12/06 22:04
LPH66:那麼使用它們達成功能的 CRT 自然會比較上層了 12/06 22:04
EdisonX:MSDN,_beginthreadex ,我沒找到有註明是呼叫 CreateThread 12/06 23:45
EdisonX:頂多只有說明,對於 CreateThread行為而言, _beginthreadex 12/06 23:45
EdisonX:比 _beginthread 更為貼切。 12/06 23:46
purincess:其實他是呼叫RtlCreateUserThread (爆) (亂講 12/07 00:34
purincess:不過話說回來lph(揮) system call在winnt應該比較好說是 12/07 00:34
purincess:windows native api XD 12/07 00:34
Slither:樓上的是亂講的嗎怎麼聽起來像真的xD 12/07 05:06
purpose:_beginthreadex 是開放原始碼的。詳細的差別,只要 google 12/07 06:37
purpose:同時搜尋 _beginthreadex createthread 就一堆線索了 12/07 06:38