次のコラム Java 入門プログラム では、Java でスレッドを順番に実行する方法を紹介します。
このようなアプリケーション シナリオを完了する必要があります:
1. 朝; 2. テスター、プロダクト マネージャー、開発者が次々と会社に来て仕事をします; 3. プロダクト マネージャーが新しい計画を立てる要件; 4. 開発者は新しい必要な機能を開発します; 5. テスターは新しい機能をテストします。
要件の計画、新機能の開発、新機能のテストが順番に行われ、スレッド 1 がプロダクト マネージャー、スレッド 2 が開発者、スレッド 3 がテスターとみなされます。
スレッドの join メソッドを使用する
join(): これは Theard のメソッドであり、その機能は、呼び出し元のスレッドが join() スレッドが完了するまで待機する必要があることです。使用を続ける前に、以下を実行してください。
アプリケーション シナリオ: join メソッドは、スレッドが別のスレッドの実行が完了するまで待機する必要がある場合に使用できます。
例は次のとおりです:
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(); } }
実行結果:
#メインスレッドの join メソッドを使用します
ここでは、スレッドをブロックするためにメインスレッドで join() が使用されています。
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(); } }
実行結果:
#スレッドを順番に実行する方法はたくさんありますので、今後一つずつ紹介していきます。
以上がJavaでスレッドを順番に実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。