由於一般的內存需求和安裝方面的開銷非常小/推倒圍棋程序的成本。即使實現一個線程(去例行程序)工作池也是相關的嗎?什麼時候你會考慮使用線程池而不是每個請求產生一個去程序?「線程池」與Go相關嗎?
-1
A
回答
2
產卵並保持大量的夠程在golang是便宜,但它不是免費的。
你應該還記得夠程本身可能很便宜,但在同一時間大量的內存可以的夠程代碼中進行分配。所以你可能想限制同時運行的goroutines的數量。
您可以使用旗語來限制資源。 另一種方法(比較習慣)是使用具有工作池的執行流水線。這種模式在golang blog中有很好的描述。
1
是的,這是相關的。 db/sql由於建立新的連接需要時間而使用到數據庫的連接池。
+1
這與主題略有不同 - 池化數據庫連接與線程池並不完全相同。 –
相關問題
- 1. CPU時間與超線程相關嗎?
- 2. 相關任務的線程池
- 3. Go bytes.Buffer線程安全嗎?
- 4. 線程與NSAutorelease池有什麼關係?
- 5. 通過線程池處理器相關性和線程創建
- 6. 線程池與BlockingCollection
- 7. C++:線程池比單線程慢嗎?
- 8. 無法關閉線程池
- 9. 與線程池鏈責任
- 10. 與線程池的問題
- 11. 線程池死鎖與Task.Result
- 12. 與同一過程相關的線程
- 13. PHP pthread與POSIX線程相同嗎?
- 14. 與ntp同步相關的JDBC池?
- 15. Android-與線程相關的崩潰
- 16. 與事件調度線程相關
- 17. 句柄如何與線程相關?
- 18. 使用相同對象的線程池
- 19. Python asyncio使用線程池嗎?
- 20. 播放2線程池:默認池VS阿卡池與Java
- 21. 線程池中的線程
- 22. 線程池最大線程
- 23. ASP.Net中的線程池定期關閉
- 24. 示例有關線程池的JAVA
- 25. 多處理線程池關閉,超時
- 26. 有關C#線程池的幫助
- 27. C#,有關線程池的問題
- 28. boost線程池
- 29. Servlet線程池
- 30. Windows線程池
如果您使用的是阻塞IO,你應該考慮使用線程池,而不是夠程的。 – ymonad
@ymonad,你是什麼意思通過阻止IO?在Go中,所有IO都是阻塞的,這就是它的併發模型的全部。如果你的意思是文件IO,它在內部與網絡IO有很大不同,那麼問題根本不在於goroutines。這是關於等待系統調用返回的實際OS線程。 – creker
@crecker我的意圖是,就使用go的非阻塞網絡庫而言,您將得到goroutine的M:N線程模型的好處,但是,當您使用阻止IO的系統調用時,go scheduler每個goroutine創建一個線程,所以使用線程池可能是一個選項。 https://groups.google.com/forum/#!topic/golang-nuts/Luje-okL4jI – ymonad