线程的方法

import java.io.*;

public class MethodTest {
	static PrintWriter out = new PrintWriter(System.out, true);//创建一个打印流
	public static void main(String[] args) {
		FirstThread first = new FirstThread();//创建一个线程first
		SecondThread second = new SecondThread();//创建一个线程second
		first.start();//启动线程first,进入了可运行态
		second.start();//启动线程second,进入了可运行态
		try {
			out.println("Waigting for first thread to finish....");//主线程先执行
			first.join();//注意join()方法:等待本线程完成为止
			out.println("It's a long wait!");
			out.println("Waking up second Thread....");
			synchronized (second) {//同步块的概念
				second.notify();
			}
			out.println("Waiting for second thread to finish...");
			second.join();//join()方法表示一直等待本线程结束为止
		}catch(InterruptedException e) {}
	}
}
class FirstThread extends Thread {
	public void run() {
		try {
			MethodTest.out.println("First thread starts running.");
			sleep(10000);//睡眠10秒
			MethodTest.out.println("First thread finishes running.");
		}catch(InterruptedException e) {}
	}
}
class SecondThread extends Thread {
	public synchronized void run() {
		try {
			MethodTest.out.println(" second thread suspends itself.");
			wait();
			MethodTest.out.println(" second thread runs again and finishes.");
		}catch (InterruptedException e) {}
	}
}

 

你可能感兴趣的:(thread,UP)