ホームページ  >  に質問  >  本文

java - ThreadPoolExecutor.execute()方法疑惑

根据类的继承机构,我们知道ThreadPoolExecutorService 继承了AbstractExecutorService类继承了ExecutorService接口继承了Executor接口中的execute()方法,这个方法是被用来专门执行异步任务的,通过传入参数Runnable来执行的。但是我看到ThreadPoolExecutorService.execute(Runnable command)方法中的源码表示不理解,求大牛帮忙看看这个源码,究竟都做了一些什么?

ringa_leeringa_lee2713日前731

全員に返信(2)返信します

  • 阿神

    阿神2017-04-18 09:37:56

    1. 現在実行中の corePoolSize (コア スレッド) より小さいスレッドがある場合は、最初に現在のタスクが送信され、

    2. がいくつかのチェックを行います。
    3. 新しいタスクがキューに入れられると、(ステータスが変化するかスレッド プールが閉じられるため) 再度チェックされ、ロールバックする必要があるか、新しいスレッド オブジェクトをロールバックする必要があるかが判断されます。

    4. タスクをキューに入れることができない場合は、新しい Thread オブジェクトを追加しようとします。そうでない場合、タスクは拒否されます

    追記: このメソッドとスレッド プールの知識全体を詳細に分析した非常に優れた記事を読んだことを覚えています。それを見つけるお手伝いをします...

    更新: Java スレッド プールについての深い理解

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:37:56

    さあ

    返事
    0
  • キャンセル返事