大家總是明確提到next_tick將在主線程中執行。 但是定時器和回調/ errbacks呢?他們保證也運行在主線程?EventMachine:在主線程中運行定時器和回調嗎?
2
A
回答
1
不管紅寶石版本,EM運行除反應器線程內的EM.defer碼塊的一切(EM.defer結果和誤差塊是在反應器中也是如此),所以是,
定時器,回調和errbacks被保證在反應器(主)線程中運行
0
假設您使用的是MRI Ruby,那麼只有1個「真實/原生」線程,它是主/反應器線程,所有代碼都由該反應器線程執行。所有定時器和回調將在反應器線程中被拾取。
Eventmachine並不是爲使用多個線程作爲其標準操作的一部分而設計的,然而,Eventmachine確實有一個'EM :: defer'方法,它將在不同的'ruby'線程上執行該塊,我相信如果您正在運行多線程能力的ruby,比如jruby或rubinious,那麼這將在「本地」操作系統線程上運行。如果您要執行任何「阻塞」代碼,則應使用「延遲」。
相關問題
- 1. Firebreath定時器回調到主線程
- 2. 在主線程上運行回調
- 3. 在腳本/運行器中運行EventMachine
- 4. 在主線程中執行JavaScript回調
- 5. System.Windows.Forms定時器在主線程上運行時不起作用
- 6. python,從主線程調用定時器回調方法
- 7. 定時器的回調線程
- 8. 運行faye服務器時運行時錯誤eventmachine
- 9. 定時器是線程嗎?
- 10. 從主線程中的子類線程執行回調
- 11. 線程完成時在主線程上的回調
- 12. Linux進程只在定時器中斷時進行調度嗎?
- 13. onNext未在Retrofit和RxJava中調用線程時運行
- 14. Rails中後新的線程上運行EventMachine的是用薄裝
- 15. c#回調主線程
- 16. SDL 2.0我可以在主線程中運行嗎?
- 17. Firebase signInWith電子郵件功能在主線程中運行嗎?
- 18. 線程在調用計時器線程返回時不停止
- 19. 運行時DLL停止主線程
- 20. Task.StartNew保持主線程,同時運行
- 21. 主線程暫停運行時異常
- 22. 該回調的哪個線程運行?
- 23. Eventmachine調用回調兩次
- 24. C#中的定時器和線程不能在一起嗎?
- 25. 定時器運行在與創建它不同的線程中
- 26. 如何讓Windows定時器在後臺線程中運行
- 27. 在主線程中運行的回調方法是否可以在onStartCommand中運行?
- 28. 從Java線程中運行計時器
- 29. 在特定時間運行java線程
- 30. 在主線程中運行的服務中運行