>Java >java지도 시간 >Java에서 스레드를 순차적으로 실행하는 방법

Java에서 스레드를 순차적으로 실행하는 방법

王林
王林앞으로
2019-11-25 14:01:062889검색

Java에서 스레드를 순차적으로 실행하는 방법

java 입문 프로그램 칼럼에서는 Java에서 스레드를 순차적으로 실행하는 방법을 소개하겠습니다. 모두에게 도움이 되길 바랍니다!

다음과 같은 애플리케이션 시나리오를 완료해야 합니다.

1. 아침 2. 테스터, 제품 관리자 및 개발자가 차례로 회사에 옵니다. 3. 제품 관리자가 새로운 요구 사항을 계획합니다. 5. 테스터는 새로운 기능을 테스트합니다.

계획 요구 사항, 필요한 새 기능 개발, 새 기능 테스트는 모두 순차적입니다. 우리는 thread1을 제품 관리자로, thread2를 개발자로, thread3을 테스터로 간주합니다.

스레드의 조인 메서드 사용

join(): Theard의 메서드입니다. 이 메서드의 기능은 호출 스레드가 계속 실행되기 전에 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();
    }
}

작업 결과:

Java에서 스레드를 순차적으로 실행하는 방법

메인 스레드의 조인 방법을 사용합니다

여기서 스레드를 차단하기 위해 메인 스레드에서 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에서 스레드를 순차적으로 실행하는 방법

스레드를 순차적으로 실행하는 방법에는 여러 가지가 있는데, 앞으로 하나씩 소개해 드리겠습니다.

위 내용은 Java에서 스레드를 순차적으로 실행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제