Windows 的線程池終于升級成基于對象的了 [轉]
Posted on 2009-02-24 21:00 S.l.e!ep.¢% 閱讀(599) 評論(0) 編輯 收藏 引用 所屬分類: IOCPWindows 的線程池終于升級成基于對象的了
我記得 Windows 的自帶線程池起源于 Win2000,
線程池不用自己創建,調用他的某些 API 的時候,庫自己創建,然了就一直呆在進程的地址空間里不走了——你沒法關閉它,也沒法創建更多的。
當時看到這個設計就覺得很傻缺,設計人員完全沒有對象的概念,甚至連上下文的概念都沒有。就跟 posix 的 hash 表一樣。
?
還好,Vista/Windows server 2008 升級了線程池,總算是一個完善的庫了。
由這些 API 組成:
- CloseThreadpool
- CloseThreadpoolCleanupGroup
- CloseThreadpoolCleanupGroupMembers
- CloseThreadpoolWait
- CloseThreadpoolWork
- CreateThreadpool
- CreateThreadpoolCleanupGroup
- CreateThreadpoolTimer
- CreateThreadpoolWait
- CreateThreadpoolWork
- InitializeThreadpoolEnvironment
- SetThreadpoolCallbackCleanupGroup
- SetThreadpoolCallbackPool
- SetThreadpoolThreadMaximum
- SetThreadpoolThreadMinimum
- SetThreadpoolTimer
- SetThreadpoolWait
- SubmitThreadpoolWork
- WaitForThreadpoolWaitCallbacks
說多了就是廢話,感興趣的自己去看:
?