3
A
回答
3
while (true)
wait_for_events
handle_events
基本上,非阻塞事件循環利用設備,其允許等待同時多個事件(select
/poll
上UNIX,WaitForMultipleEvents
在Windows,epoll
在Linux kqueue
在FreeBSD等等)。在主循環的每次迭代中,事件(文件描述符,定時器等)都在某種句柄中註冊。然後,調用等待事件的函數(例如,select
)。這通常會返回在調用該函數期間發生的所有事件。最後,循環處理事件 - 通常通過調用與事件相關的回調。
有關詳細信息,請參閱libevent或某些GUI工具包事件循環的實現 - GTK +或Qt。
+0
只是出於好奇,如何系統處理'select()',我的意思是它作爲一個線程分叉?或過程?如果它不是線程或分叉作爲一個進程,我無法將自己的頭圍繞如何進行非阻塞... – chutsu 2012-08-13 17:58:30
相關問題
- 1. 對於循環的Python非阻塞
- 2. 重構非阻塞nodejs do..while循環
- 3. 如何定期運行任務而不阻塞事件循環?
- 4. 無阻塞無限循環
- 5. mpi:阻塞與非阻塞
- 6. 如何使Rails非阻塞?
- 7. 防止tcl線程被主事件循環阻塞
- 8. 事件循環VS多線程阻塞IO
- 9. 如何在Android上處理非阻塞事件處理?
- 10. 非阻塞stdio
- 11. 非阻塞pthread_join
- 12. 非阻塞spmd
- 13. 非阻塞IO如何在javascript中工作
- 14. 非阻塞文件openat()
- 15. 帶延遲的阻塞/非阻塞
- 16. 嵌套Socket阻塞非阻塞SocketHi
- 17. 非阻塞PASV襪子和阻塞
- 18. 是renderer.render()阻塞還是非阻塞?
- 19. 非阻塞寫入和阻塞recv
- 20. 當你給他們打電話時,事件是阻塞還是非阻塞?
- 21. 在node.js中編寫嵌套的非阻塞循環
- 22. 非阻塞套接字的嚴格recv循環
- 23. 非常快的無限循環無阻塞I/O
- 24. 問題與SystemVerilog for循環具有非阻塞分配?
- 25. 帶有while循環的非阻塞代碼
- 26. 如何在Linux中顯示進程狀態(阻塞,非阻塞)
- 27. 如何修改MPI阻塞發送和接收到非阻塞
- 28. 網絡阻塞到非阻塞,只有線程作爲選項?
- 29. 的ScrollViewer阻塞事件
- 30. 阻塞,直到事件
這與我前段時間回答的另一個問題類似:http://stackoverflow.com/questions/80617/asychronous-programming-in-python-twisted/81456#81456 – Glyph 2010-06-25 18:03:36