`

多线程的配合使用

阅读更多
1、为Thread撰写两个子类,其中一个的run()在启动后取得第二个Thread object reference,然后调用wait()。另一个子类的run()在过了数秒之后调用notifyAll(),唤醒第一个线程,使第一个线程可以印出消息。
MasterThread类
public class MasterThread extends Thread {

	 public static void main(String[] args) {
		 
		 MasterThread mt = new MasterThread();
		 mt.start();
	 }

	 public void run() {
		 
		SlaverThread st = new SlaverThread(this);
		st.start();
		synchronized (this) {
			try {
					this.wait();
			} catch (InterruptedException e) {
					
				e.printStackTrace();
			}
		}
		System.out.println("MasterThread say hello!");
	} 
}


2、SlaverThread 类
public class SlaverThread extends Thread {
	
	 private Thread mt = null;
	 
	 public SlaverThread(Thread mt) {
	  this.mt = mt;
	 }

	 public void run() {
		 
	  try {
		   System.out.println("SlaverThread started..");
		   sleep(3000);
		   System.out.println("3 second past");
	  } catch (InterruptedException e) {
		  
		  e.printStackTrace();
	  }
	  System.out.println("notify MasterThread");
	  synchronized (mt) {
		  
		  mt.notifyAll();
	  }  
	 }

	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics