Erklärung
1. Worker ist eine interne Klasse von ThreadPoolexecutor, die hauptsächlich zur Aufrechterhaltung des Interrupt-Kontrollstatus von Thread-Ausführungsaufgaben verwendet wird.
2. AQS während der Implementierung der Runnable-Schnittstelle erben. Die Implementierung der Runnable-Schnittstelle bedeutet, dass der Worker ein Thread ist.
Instanz
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); }
Das obige ist der detaillierte Inhalt vonVerwendung der Worker-Klasse von Java für die Verarbeitung von Hintergrundaufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!