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(); } }
Exécuter le résultat :
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(); } }
Résultats de fonctionnement :
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!