一般に、Goルーチンのメモリ要件とセットアップ/切断コストの点で、オーバーヘッドはほとんどありません。それはスレッド(作業を行っている)ワーカープールを実装することさえ関係がありますか?スレッドプールを使用することは、リクエストごとに「スポーンする」のではなく、いつ使うのですか?「スレッドプール」はGoに関連していますか?
-1
A
答えて
2
ゴランの産卵とたくさんのゴルーチンは安いですが、それは無料ではありません。
また、goroutine自体は非常に安いかもしれませんが、同時に多くのメモリをgoroutineコードの内側に割り当てることができます。したがって、同時実行しているゴルーチンの数を制限することができます。
リソースを制限するためにセマフォを使用できます。 もう1つのアプローチ(もっと慣れない)は、ワーカープールで実行パイプラインを使用することです。このパターンは、golang blogに詳しく記載されています。
1
はい、該当します。 db/sqlは、新しい接続に時間がかかるため、データベースへの接続プールを使用します。
+1
これは少し話題です - データベース接続のプールはスレッドプールと全く同じではありません。 –
関連する問題
- 1. マルチスレッド - スレッドプールは適していますか?
- 2. スレッドプールに関数を渡します。
- 3. gorm + go + pg:関連するクエリ
- 4. スレッドプールはウィンドウスケジューラに依存していますか?
- 5. 'class'は 'interface'に関連する 'object'に関連しています...?
- 6. wap/wmlはまだ2011年に関連していますか?
- 7. スレッドはスレッドプールによって管理されていますか?
- 8. フリーベースライブラリに関連しています
- 9. HTTPSプロトコルはREST API Webサービスに関連していますか?
- 10. このレコードは私に関連していますか?
- 11. ポート28060 tcpはRに関連していますか?
- 12. R&L値はコンテキストに関連していますか?
- 13. ViewStateはASP.NET MVCに関連していますか?
- 14. BASICはVisual Basicに関連していますか?
- 15. なぜRxNettyはスレッドプールを使用していますか?
- 16. これはJavafxまたはfxmlに関連しています
- 17. Docker Swarmの発見はまだ関連していますか?
- 18. Djangoの "apps"フォルダはまだ関連していますか?
- 19. Fowlerの「エンタープライズアプリケーションアーキテクチャのパターン」はまだ関連していますか?
- 20. Pro Djangoの本はまだ関連していますか?
- 21. スレッドプール結合関数
- 22. カスタムストレージポーリングは、消費計画Azure関数に関連していますか?
- 23. 関数型プログラミングの純関数はすべて連続していますか?
- 24. npmはUNMET PEER DEPENDENCYに関連しており、反応ネイティブに関連しています。
- 25. スレッドプールは単一のスレッド関数で実行できますか?
- 26. Vert.xのスレッドプールに関するいくつかの質問がありますか?
- 27. enumは関連オブジェクトを保持していますか?
- 28. `std :: common_type`は関連していますか?
- 29. は、パンダがインプレイス関数と連結していますか?
- 30. SHA1とSHA256は関連していますか?
ブロッキングIOを使用している場合は、goroutineの代わりにスレッドプールを使用することを検討する必要があります。 – ymonad
@ymonad、IOをブロックすることはどういう意味ですか?すべてのIOはブロックされていますが、それはちょっとしたことで、並行性モデルです。内部的にネットワークIOと大きく異なるファイルIOを意味する場合、問題はゴルーチンに関するものではありません。これは、実際のOSスレッドがsyscallsを返すのを待っていることです。 – creker
@crecker私が意図したことは、ノンブロッキングであるgoのネットワークライブラリを使用する限り、goroutineのM:Nスレッドモデルの利点を得ることです。ただし、IOをブロックするシステムコールを使用すると、 goroutineごとに1つのスレッドを作成するので、スレッドプールを使用することがオプションになります。 https://groups.google.com/forum/#!topic/golang-nuts/Luje-okL4jI – ymonad