Javaスレッド・プールに関連したインタビューの質問

Javaスレッド・プールに関連する問題

 

どのようにスレッドプール内の1.Javaが達成されますか?

のJava、いわゆるスレッドプール「スレッド」は、実際には、に抽象化され
、スレッドプールに格納され、AQSを達成基づく静的内部クラスワーカー、
HashSetの<ワーカー>労働者メンバ変数の、
実行する必要タスクは、メンバ変数のワークキューに格納されている
に(BlockingQueueの<Runnableを>ワークキュー)。
このように、基本的な考え方は、全体のスレッドプールを達成することです:常にワークキューから削除する
タスクが処理のために労働者に対して、実行します。


いくつかのコアの構成パラメータのスレッドプールを作成します。2.?


プール内のJavaスレッドを作成することは実際には非常に柔軟性があり、私たちはさまざまなパラメータを設定することができます
:いくつかのパラメータが含ま異なる振る舞いスレッドプール、作成する
corePoolSize:スレッドプール内のスレッドのコア数を。
maximumPoolSize:許可スレッドプール内のスレッドの最大数。
keepAliveTimeが:スレッドのコアの数を超えて生存のスレッドのアイドル時間。
ワークキュー:保存タスクの実行キューの前にタスクは、executeメソッドによって保存
提出したRunnableタスクを。


スレッドプールスレッド3.作成する方法ですか?良いの権利を作成するために、スレッドプールの開始から始まるのですか?

もちろんそうではありません。ワーカースレッドプールは、デフォルトの初期化後に開始要求にのみ起動を待たず
に移動します。
私たちは、タスクを追加するためにexecute()メソッドを呼び出すたびに、スレッド・プールには、以下の判断を行います。
以下corePoolSizeよりも実行中のスレッドの数は、その後すぐにスレッドを作成する場合は
、このタスクを実行するために、
スレッドの数を実行している場合

おすすめ

転載: blog.csdn.net/zzhuan_1/article/details/104009709