ホームページ  >  記事  >  Java  >  Javaスレッドプールにおけるクラスの継承とは何ですか?

Javaスレッドプールにおけるクラスの継承とは何ですか?

PHPz
PHPz転載
2023-05-09 10:55:07651ブラウズ

1. 説明

Java のスレッド プールのコア実装クラスは ThreadPoolExecutor です。

Executor: タスクを実行するためのインターフェイスのみを提供し、ユーザーはこれを提供しません。スレッドの作り方には注意が必要ですが、スレッドの作り方はRunnableオブジェクトを用意するだけです。

ExecutorService: タスクの実行に基づいて、タスクの送信やスレッド プールのライフサイクル管理などのインターフェイスが追加されます。

AbstractExecutorService: 抽象シリーズの実行タスクのプロセス。下位層の実装はタスクの実行メソッドのみに重点を置く必要があることが保証されます。

ThreadPoolexecutor: 一方では独自のライフサイクルを維持し、他方ではコースとタスクを管理します。この 2 つをうまく組み合わせて並列タスクを実装します。

2.例

// ctl:高三位表示线程池运行状态,低29位表示线程池线程运行数量
// 一个变量存储两个值的好处是不必费心思(比如加锁)去维护两个状态的一致性
private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0));
 
// 获取线程池当前的运行状态(~:按位取反,即0变成1,1变成0。)
private static int runStateOf(int c)     { return c & ~CAPACITY; }
// 获取线程池当前运行的线程数量
private static int workerCountOf(int c)  { return c & CAPACITY; }
// 通过线程池状态和运行的线程数量获取ctl
private static int ctlOf(int rs, int wc) { return rs | wc; }

以上がJavaスレッドプールにおけるクラスの継承とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。