Maison > Java > javaDidacticiel > Utilisation de la classe Worker de Java pour le traitement des tâches en arrière-plan

Utilisation de la classe Worker de Java pour le traitement des tâches en arrière-plan

WBOY
Libérer: 2023-04-20 22:34:21
avant
1368 Les gens l'ont consulté

Explication

1. Worker est la classe interne de ThreadPoolexecutor, qui est principalement utilisée pour maintenir l'état de contrôle des interruptions des tâches d'exécution des threads.

2. Hériter d'AQS lors de l'implémentation de l'interface Runnable signifie que le Worker est un thread.

Instances

    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);
        }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal