在OSX或iOS上,NSOperationQueue對於調度異步任務非常有用。 Windows上有類似的設施嗎?在Windows上是否存在NSOperationQueue的等價關係?
1
A
回答
0
Win32最相似的API是Thread Pool API。
從MSDN:
線程池的應用程序編程接口(API)使用基於對象的設計。以下每個對象都由用戶模式數據結構表示:
池對象是一組工作線程,可用於執行工作。每個進程都可以根據需要創建具有不同特性的多個獨立池。每個進程還有一個默認池。
清理組與一組回調生成對象相關聯。函數存在等待並釋放屬於每個清理組成員的所有對象。這使應用程序無需跟蹤它創建的所有對象。 將一個工作對象分配給一個池,並可選擇分配給一個清理組。它可以發佈,導致池中的工作者線程執行其回調。
工作對象可以有多個未處理的帖子;每個生成一個回調。由於缺乏資源,崗位操作不能失敗。
定時器對象控制回調的調度。每當計時器到期時,它的回調就會發布到其工作池中。由於缺乏資源,設置計時器不會失敗。
等待對象導致服務器線程在等待的句柄上等待。在等待滿足或超時期限到期後,服務員線程將等待對象的回叫過帳到等待的工作者池。由於缺乏資源,設置等待不會失敗。
I/O對象將文件句柄與線程池的I/O完成端口相關聯。當異步I/O操作完成時,工作線程將獲取操作的狀態並調用I/O對象的回調。
2
Windows有一對夫婦的Thread Pool APIs。 「舊線程池API」更像NSOperationQueue
,但建議將New Thread Pool API用於新代碼。
相關問題
- 1. Perl中是否存在與DBI無關的等價關係?
- 2. Makefile中是否存在__DIR__的等價關係?
- 3. 在Windows中是否有XEmbed等價物?
- 4. 在C#Windows窗體中是否存在QTimer :: singleShot等價物?
- 5. 是否存在C++等價的NullPointerException
- 6. 是否存在與$ http.pendingRequests等價的Angular2?
- 7. 是否存在0x80的ascii等價物?
- 8. 是否存在可在Windows和Unix上運行的/ dev/null等價物?
- 9. 是否存在與SELECT ... COUNT(*)... GROUP BY ...等價的等價物?
- 10. strptime()在Windows上等價嗎?
- 11. WeakHashMap是否存在java.util.concurrent等價物?
- 12. Axiis是否存在非Adobe等價物?
- 13. JavaScript中是否存在getColorBoundsRect()等價物?
- 14. IBM Worklight - 是否存在Window.open()等價物?
- 15. C++等價於NSOperation和NSOperationQueue
- 16. 是否有與Gtk#Windows等價的Form.Showdialog?
- 17. 在Java中是否存在C#mstest系統屬性的等價物?
- 18. natvie windows DLL和Shared Linux庫之間是否有任何等價關係.SO
- 19. 在Windows上的SIGWINCH等價物?
- 20. 是內連接等價關係嗎?
- 21. 是Python的==一個浮點數上的等價關係嗎?
- 22. 在MS-SQL中是否存在與SHA1()等價的內容?
- 23. 在javascript或node.js中是否存在等價的std :: bind?
- 24. 在GAE(python)中是否存在等價於Rails的「flash」消息?
- 25. 在C++/CLI中是否存在C#的不安全等價物?
- 26. 在Python 3中是否存在與tokenize import pseudoprog.match的等價物?
- 27. 在Ruby 1.8.5中是否存在Array#each_slice()的等價物?
- 28. 在PowerShell中是否存在「this」的等價物?
- 29. 在jQuery中是否有等價的eval()?
- 30. java neo4j檢查是否存在關係