是的,不同的线程可以创建和加入另一个线程。在Java中,可以使用Thread类的构造函数创建新的线程,并使用join()方法将一个线程添加到另一个线程中。
下面是一个示例代码,演示了如何创建两个线程并将其中一个线程添加到另一个线程中:
public class ThreadExample {
public static void main(String[] args) {
// 创建线程A
Thread threadA = new Thread(() -> {
System.out.println("Thread A is running");
try {
Thread.sleep(2000); // 模拟线程A的工作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread A is done");
});
// 创建线程B
Thread threadB = new Thread(() -> {
System.out.println("Thread B is running");
try {
Thread.sleep(3000); // 模拟线程B的工作
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Thread B is done");
});
// 启动线程A
threadA.start();
// 将线程B加入到线程A中,并等待线程B执行完毕
try {
threadA.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 启动线程B
threadB.start();
}
}
运行上述代码,将得到以下输出:
Thread A is running
Thread A is done
Thread B is running
Thread B is done
可以看到,线程A和线程B按顺序执行,线程B在线程A执行完毕后开始执行。