スレッドとスレッドプールの違いを教えてもらえますか?それは使用するのが最善です...?スレッドとスレッドプールの相違点
答えて
スレッドは1回しか実行できないため、タスクごとにスレッドを使用する必要があります。しかし、スレッドを作成して起動するのはいくらか高価であり、実行するスレッドが多すぎる(正確な名前を記憶していない)状況が発生し、パフォーマンスがさらに低下する可能性があります。
スレッドプールは、名前が示すように、常に実行されているワーカースレッドのプールです。これらのスレッドは、通常、タスクをリストから取り出して実行し、次のタスクを実行しようとします。タスクがない場合、スレッドは待機します。スレッドプールを使用して
はいくつかの利点があります。
- あなたが正常に(あまりにもJVMによって異なります)お使いのシステムのためのスレッドの最適な数を持っているタスク
- ごとにスレッドを作成する必要はありません
- あなたが書き込みタスクに集中し、インフラに
編集を管理するために、スレッドプールを使用することができます。ここでは、並行性に関するいくつかのかなり良い記事は、一般的には、次のとおりです。Sutter's Mill、下部にもっとリンクがあります。主にC/C++用に書かれていますが、一般的な概念は同じです。同時実行ソリューションとハードウェアの相互依存性も記述されているためです。同時実行パフォーマンスの問題を理解するための良い記事はthis article on drdobbs.comです。
ありがとうございました。ありがとうございました。簡単な例をあげてください。 –
「実行するスレッドが多すぎます(正確な名前は記憶されていません)」。あなたは "飢え"を探している用語ですか? – SteeveDroz
@Altatur 'starvation'は、スレッドが(CPU時間のような)リソースを必要としないという意味で、これの症状です。 「オーバーサブスクリプション」は、私が探している用語のようです。 – Thomas
スレッドプールは、統一されたタスクを実行するために割り当てられたスレッドの集合です。 スレッドプールパターンを使用する利点は、同時に実行できるスレッド数を定義できることです。これは、高いCPU負荷またはメモリ不足状態などによるサーバのクラッシュを回避するためです。サーバーのハードウェア容量は1秒あたり最大100要求をサポートできます。
データベースプーリングには、スレッドプールと同様の概念があります。
このパターンは、ほとんどのバックエンドサーバーのアプリケーションプロセスで広く使用されています。
スレッドはタスクを実行する単位ですが、
- 1. IE標準、相違点および相違点の相違点
- 2. importとconstとの相違点とcommonjsでの相違点
- 3. =と:=の相違点
- 4. PHPUnitとPHPSpecの相違点と相違点
- 5. スレッド安全性に関して辞書とハッシュテーブルの相違点
- 6. CBUUIDとNSUUIDの相違点
- 7. NSTimeZoneとGMTの相違点
- 8. ListViewとArrayListの相違点
- 9. pictureBox.Update()とpictureBox.Refresh()の相違点
- 10. ApplicationContextInitializerとBeanFactoryPostProcessorの相違点
- 11. システムとshell_execの相違点
- 12. AsyncSocketとAsyncUdpSocketの相違点
- 13. .textと.get_text()の相違点
- 14. plt.close()とplt.clf()の相違点
- 15. `BeginSubscribeToStreamingNotifications`と` SubscribeToStreamingNotifications`の相違点
- 16. Delegate.InvokeとDelegateの相違点
- 17. InternalResourceViewResolverとUrlBasedViewResolverの相違点
- 18. tf.nn.convolutionとtf.nn.conv2dの相違点
- 19. Backbone.Layout.extendとBackbone.view.extendの相違点
- 20. JavaとMacOSの相違点
- 21. Yocto:CORE_IMAGE_EXTRA_INSTALLとIMAGE_INSTALLの相違点
- 22. window.someRandomVarとsomeRandomVarの相違点
- 23. CDRとxDRの相違点
- 24. gst_bus_add_watch()とg_signal_connect()の相違点
- 25. EventStreamとEventBusの相違点
- 26. System.Threading.Tasks.DataflowとMicrosoft.Tpls.Dataflowの相違点
- 27. mkfifo()とmknod()の相違点
- 28. java.homeとJAVA_HOMEの相違点
- 29. $ httpParamSerializerJQLikeと$ httpParamSerializerの相違点
- 30. doAfterTerminateとdoFinallyの相違点
[こちら](http://download.oracle.com/javase/tutorial/essential/concurrency/index.html)を見ましたか? –