スレッドプールを解析するThreadPoolExecutorソース

1.変数

ThreadPoolExecutorは最初、これらの定数を定義し、最初の一目見無知力、実際には、スレッドプールの状態を表現するバイナリ高い3 intで

ビット・コンピューティングを初めて目:

  1. <<「左:右のアップ側位置には、2倍の値に対応する、0を空い。
  2. 「>>」は右:それは、それが負である場合には、OS X S.1に使用されるコンピュータシステムに依存して、0又は1を満たすゼロで満たされた正の場合、位置を空いたままにしました。これは、2で割った値に相当します。
  3. その負のバイナリの絶対値で1を加えた後ネゲート
    AtomicIntegerの最終的なCTL =新しい新規のAtomicInteger(ctlOf(RUNNING、0))のプライベート; 
    プライベート静的INT COUNT_BITS最終Integer.SIZE = - 3; 29 // 
    専用容量の静的INT =ファイナル(COUNT_BITS << 1。) - 1; // 1 < <29 = 00000000 00000000 0,010,000,000,000,000マイナス1 = 0,001,111,111,111,111 1,111,111,111,111,111 
   バイナリ1 // 001、110がネゲートされている、111、111プラス1バイナリ次いで、-1である29を左、
    RUNNING INTプライベート静的=ファイナル<< COUNT_BITS -1; // 111 00000 00000000 00000000 00000000 
    民間最終静的INT = 0 << SHUTDOWNをCOUNT_BITS; // 000 00000 00000000 00000000 00000000 
    民間最終静的int型1 << = STOPをCOUNT_BITS; // 001 00000 00000000 00000000 00000000
    プライベート静的最終int型の片付け= 2 << COUNT_BITS。// 010 00000 00000000 00000000 00000000 
    プライベート静的最終int型TERMINATED = 3 << COUNT_BITS。// 011 00000 00000000 00000000 00000000

  

おすすめ

転載: www.cnblogs.com/akaneblog/p/11462549.html