一般に、Goルーチンのメモリ要件とセットアップ/切断コストの点で、オーバーヘッドはほとんどありません。それはスレッド(作業を行っている)ワーカープールを実装することさえ関係がありますか?スレッドプールを使用することは、リクエストごとに「スポーンする」のではなく、いつ使うのですか?「スレッドプール」はGoに関連していますか?
-1
A
答えて
2
ゴランの産卵とたくさんのゴルーチンは安いですが、それは無料ではありません。
また、goroutine自体は非常に安いかもしれませんが、同時に多くのメモリをgoroutineコードの内側に割り当てることができます。したがって、同時実行しているゴルーチンの数を制限することができます。
リソースを制限するためにセマフォを使用できます。 もう1つのアプローチ(もっと慣れない)は、ワーカープールで実行パイプラインを使用することです。このパターンは、golang blogに詳しく記載されています。
1
はい、該当します。 db/sqlは、新しい接続に時間がかかるため、データベースへの接続プールを使用します。
+1
これは少し話題です - データベース接続のプールはスレッドプールと全く同じではありません。 –
関連する問題
- 1. マルチスレッド - スレッドプールは適していますか?
- 2. スレッドプールに関数を渡します。
- 3. スレッドプールはウィンドウスケジューラに依存していますか?
- 4. 'class'は 'interface'に関連する 'object'に関連しています...?
- 5. wap/wmlはまだ2011年に関連していますか?
- 6. フリーベースライブラリに関連しています
- 7. スレッドはスレッドプールによって管理されていますか?
- 8. ViewStateはASP.NET MVCに関連していますか?
- 9. HTTPSプロトコルはREST API Webサービスに関連していますか?
- 10. このレコードは私に関連していますか?
- 11. BASICはVisual Basicに関連していますか?
- 12. なぜRxNettyはスレッドプールを使用していますか?
- 13. これはJavafxまたはfxmlに関連しています
- 14. Pro Djangoの本はまだ関連していますか?
- 15. Fowlerの「エンタープライズアプリケーションアーキテクチャのパターン」はまだ関連していますか?
- 16. 関数型プログラミングの純関数はすべて連続していますか?
- 17. npmはUNMET PEER DEPENDENCYに関連しており、反応ネイティブに関連しています。
- 18. SHA1とSHA256は関連していますか?
- 19. は、パンダがインプレイス関数と連結していますか?
- 20. `std :: common_type`は関連していますか?
- 21. MissingKeyMapError、ドメインに関連していますか?
- 22. MPLabにインラインキーワードが関連していますか?
- 23. Uploadify IOエラー - Apacheユーザーに関連していますか?
- 24. CSS検証はもはや関連していませんか?
- 25. Google Maps APIに関連するJavaスクリプトコードからGoサーバーを呼び出す
- 26. Javaのfork-and-joinスレッドプールはIOバインドタスクの実行に適していますか?
- 27. は、androidのサービススレッドに関連しています
- 28. Xamarin:ICommandはコマンドパターンに関連しています。
- 29. divの位置はコンテナとウィンドウに関連しています
- 30. はmdfファイルに関連しています
ブロッキング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