Maison > Java > javaDidacticiel > Comment faire en sorte que les threads s'exécutent séquentiellement en Java

Comment faire en sorte que les threads s'exécutent séquentiellement en Java

王林
Libérer: 2019-11-25 14:01:06
avant
2852 Les gens l'ont consulté

Comment faire en sorte que les threads s'exécutent séquentiellement en Java

La colonne suivante du programme d'entrée Java présentera comment exécuter des threads de manière séquentielle en Java. J'espère qu'elle vous sera utile !

Nous devons réaliser un tel scénario d'application :

1. Matin ; 2. Les testeurs, les chefs de produit et les développeurs viennent dans l'entreprise pour travailler les uns après les autres ; exigences ; 4. Les développeurs développent de nouvelles fonctions requises ; 5. Les testeurs testent de nouvelles fonctions ;

Les exigences de planification, le développement de nouvelles fonctions et le test de nouvelles fonctions sont séquentiels. Nous considérons le thread1 comme le chef de produit, le thread2 comme le développeur et le thread3 comme le testeur.

Utilisez la méthode join du thread

join() : C'est la méthode de Theard. Sa fonction est que le thread appelant doit attendre que le thread join() se termine. avant de pouvoir continuer à l'utiliser, exécutez-le ci-dessous.

Scénario d'application : La méthode join peut être utilisée lorsqu'un thread doit attendre qu'un autre thread termine son exécution.

L'exemple est le suivant :

package com.zhangsf.javabase.thread.order;
/**
 * @author zhangsf
 * 通过子程序join使线程按顺序执行
 */
public class ThreadJoinDemo {
    public static void main(String[] args) {
        final Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("产品经理规划新需求");
            }
        });
        final Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    thread1.join();
                    System.out.println("开发人员开发新需求功能");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        Thread thread3 = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    thread2.join();
                    System.out.println("测试人员测试新功能");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });
        System.out.println("早上:");
        System.out.println("测试人员来上班了...");
        thread3.start();
        System.out.println("产品经理来上班了...");
        thread1.start();
        System.out.println("开发人员来上班了...");
        thread2.start();
    }
}
Copier après la connexion

Exécuter le résultat :

Comment faire en sorte que les threads sexécutent séquentiellement en Java

Utiliser la méthode de jointure du fil principal

Voici l'utilisation de join() dans le fil de discussion principal pour bloquer le fil de discussion.

package com.zhangsf.javabase.thread.order;
/**
 * @author zhangsf
 * 通过主程序join使线程按顺序执行
 */
public class ThreadMainJoinDemo {
    public static void main(String[] args) throws Exception {
        final Thread thread1 = new Thread(new Runnable() {
            @Override
            public void run() {
              System.out.println("产品经理正在规划新需求...");
            }
        });
        final Thread thread2 = new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("开发人员开发新需求功能");
            }
        });
        final Thread thread3 = new Thread(new Runnable() {zzzz
            @Override
            public void run() {
                System.out.println("测试人员测试新功能");
            }
        });
        System.out.println("早上:");
        System.out.println("产品经理来上班了");
        System.out.println("测试人员来上班了");
        System.out.println("开发人员来上班了");
        thread1.start();
        //在父进程调用子进程的join()方法后,父进程需要等待子进程运行完再继续运行。
        System.out.println("开发人员和测试人员休息会...");
        thread1.join();
        System.out.println("产品经理新需求规划完成!");
        thread2.start();
        System.out.println("测试人员休息会...");
        thread2.join();
        thread3.start();
    }
}
Copier après la connexion

Résultats de fonctionnement :

Comment faire en sorte que les threads sexécutent séquentiellement en Java

Il existe de nombreuses façons d'exécuter les threads de manière séquentielle, et je vous les présenterai une par une à l'avenir .

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:csdn.net
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