[java]代码库
/**
* 线程的结合。
* 当一个线程需要等待另一个线程结束时,叫做线程的结合。
*/
public class JoinThread {
/** 自定义线程类 */
static class ThreadA extends Thread{
//线程的ID
private int ID = 0;
//线程运行时循环的次数
private int whileTimes = 0;
public ThreadA(int id, int times){
this.ID = id;
this.whileTimes = times;
}
public void run(){
System.out.println("ThreadA" + this.ID + " begin!");
int i=0;
try {
//连续循环whileTimes次
while (i < this.whileTimes){
System.out.println("ThreadA-" + this.ID + ": " + i++);
//sleep方法将当前线程休眠。
Thread.sleep(200);
}
} catch (InterruptedException e) {
}
System.out.println("ThreadA" + this.ID + " end!");
}
}
public static void main(String[] args) {
//新建4个线程对象
Thread thread1 = new ThreadA(1, 3);
Thread thread2 = new ThreadA(2, 2);
Thread thread3 = new ThreadA(3, 2);
Thread thread4 = new ThreadA(4, 4);
//启动所有线程
System.out.println("Main method begin. To start 4 threads!");
thread1.start();
thread2.start();
thread3.start();
thread4.start();
//等待所有线程运行结束
try {
thread1.join();
thread2.join();
thread3.join();
thread4.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
//此时所有线程都运行结束
System.out.println("Main method end! All 4 threads are ended");
}
}