温馨提示×

java join()方法的参数含义是什么

小樊
82
2024-09-30 01:48:19
栏目: 编程语言

join() 方法在 Java 中主要用于线程之间的协作。当一个线程调用另一个线程的 join() 方法时,调用 join() 方法的线程会被阻塞,直到被 join() 的线程执行完毕或者超过指定的等待时间。

join() 方法有两个版本:

  1. public final void join(long millis) throws InterruptedException

    这个版本的 join() 方法接受一个长整型参数 millis,表示等待的最长时间(以毫秒为单位)。如果在指定的时间内,被 join() 的线程还没有执行完毕,那么调用 join() 的线程会继续执行,不再等待。

  2. public final void join()

    这个版本的 join() 方法不接受任何参数,表示无限期地等待被 join() 的线程执行完毕。

示例:

class MyThread extends Thread {
    @Override
    public void run() {
        System.out.println("子线程开始执行");
        try {
            Thread.sleep(2000); // 模拟子线程执行耗时操作
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("子线程执行完毕");
    }
}

public class Main {
    public static void main(String[] args) {
        MyThread myThread = new MyThread();
        myThread.start(); // 启动子线程

        try {
            myThread.join(); // 主线程调用子线程的 join() 方法,主线程会等待子线程执行完毕
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("主线程继续执行");
    }
}

输出结果:

子线程开始执行
主线程继续执行
子线程执行完毕

在这个示例中,主线程调用了子线程的 join() 方法,因此主线程会等待子线程执行完毕后再继续执行。

0