线程

来源:互联网 发布:阿里云 上海 杭州机房 编辑:程序博客网 时间:2024/05/20 07:57

package test;

public class TestThread {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new TestThread();

 }

 public String a = "test";

 public TestThread() {
  Thread thread1 = new WaitThread();
  Thread thread2 = new WaitThread();
  thread1.start();
  thread2.start();

  try {
   Thread.sleep(2000);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  Thread thread3 = new NotifyThread();
  thread3.start();

 }

 class WaitThread extends Thread {
  public void run() {
   synchronized (a) {
    try {
     System.out.println("before wait : " + Thread.currentThread() + ":" + a);
     a.wait();
     System.out.println("after wait : " + Thread.currentThread() + ":" + a);
     System.out.println("before sleep : " + Thread.currentThread() + ":" + a);
     sleep(5000);
     System.out.println("after sleep : " + Thread.currentThread() + ":" + a);
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
 }

 class NotifyThread extends Thread {
  public void run() {
   synchronized (a) {
    a.notifyAll();
   }
  }
 }
}

原创粉丝点击