Penjelasan
1. Worker ialah kelas dalaman ThreadPooleexecutor, yang digunakan terutamanya untuk mengekalkan keadaan kawalan gangguan tugas pelaksanaan thread.
2. Warisi AQS semasa melaksanakan antara muka Runnable.
Contoh
private final class Worker extends AbstractQueuedSynchronizer implements Runnable{ /** * This class will never be serialized, but we provide a * serialVersionUID to suppress a javac warning. */ private static final long serialVersionUID = 6138294804551838833L; /** Thread this worker is running in. Null if factory fails. */ // 执行任务的线程 final Thread thread; /** Initial task to run. Possibly null. */ // 执行的任务 Runnable firstTask; /** Per-thread task counter */ volatile long completedTasks; /** * Creates with given first task and thread from ThreadFactory. * @param firstTask the first task (null if none) */ Worker(Runnable firstTask) { // 新建线程的时候,设置state -1 是为了防止线程还未执行时(线程只有在执行的时候才会被中断),就被 // 其它线程显式调用shutdown方法中断了,因为中断是要判断state大于等于0才会中断 setState(-1); this.firstTask = firstTask; // 新建了一个线程 this.thread = getThreadFactory().newThread(this); } /** Delegates main run loop to outer runWorker */ public void run() { runWorker(this); }
Atas ialah kandungan terperinci Menggunakan kelas Pekerja Java untuk pemprosesan tugas latar belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!