ソースコード分析、ThreadPoolExecutorをすばやく使用する方法

アトミックCTL変数は制御ステータスを使用し、2つの関数があり、ワーカーの数と実行ステータスを記録します(下位29ビットはワーカーの数で、上位3ビットは実行ステータスです)。その初期値はRUNNING(111 00000000000000000000000000000)です。これは負の数であり、最大値は0であることを忘れないでください。そのため、実行中かどうかを判別するisRunningメソッドがあります:ctl.get()<SHUTDOWN(0)。スレッドプールは、作成されたジョブスレッドをワーカークラスにカプセル化します。これにより、Runnableインターフェイスが完成し、AQS(行と列のシンクロナイザ)も継承されます。目的は、複数のスレッドがスレッドプールを呼び出してタスクを実行するときに、1つのスレッドだけが現在のスレッドを取得するようにすることです。ロック。

おすすめ

転載: www.cnblogs.com/selang/p/12709973.html