多线程(八)join的用法

描述:此时有两个线程 一个线程A 一个线程B,A线程调用了B的join方法

作用:A等待B线程执行完毕之后(释放我的CPU执行权),再继续执行。

线程正常执行的顺序

package com.zuojie;

/**
 * 线程中join的用法
 * 
 * @author zuojie
 *
 */

public class ThreadDemo06 {

	public static void main(String[] args) {
		Thread thread = new Thread(new Runnable() {
			public void run() {
				for (int i = 0; i < 30; i++) {
					System.out.println("子线程,i" + i);
				}
			}
		});
		thread.start();
		// 主线程让子线程先执行完毕 怎么做?
		for (int i = 0; i < 30; i++) {
			System.out.println("主线程,i" + i);
		}

	}

}

执行结果

这里 我们会有一个疑问 咦 为什么线程总是交替执行 怎么让其中一个线程优先执行?

package com.zuojie;

/**
 * 线程中join的用法
 * 
 * @author zuojie
 *
 */

public class ThreadDemo06 {

	public static void main(String[] args) {
		Thread thread = new Thread(new Runnable() {
			public void run() {
				for (int i = 0; i < 30; i++) {
					System.out.println("子线程,i" + i);
				}
			}
		});
		thread.start();
		// 主线程让子线程先执行完毕 怎么做?
		try {
			thread.join();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		for (int i = 0; i < 30; i++) {
			System.out.println("主线程,i" + i);
		}

	}

}

运行结果

猜你喜欢

转载自blog.csdn.net/OnlyoneFrist/article/details/88629493