package 同步线程;
public class test5 {
// t1 come->t1 wait(释放t1在person上的锁)->t2 come->t2 over->t1 over
final static Object person =new Object();//静态
public static class T1 extends Thread{
public void run(){
synchronized (person){//给静态上锁
System.out.println(System.currentTimeMillis()+"T1 come");
try{
System.out.println(System.currentTimeMillis()+"T1 wait");
person.wait();
}catch (InterruptedException r){
r.getStackTrace();
}
System.out.println(System.currentTimeMillis()+"T1 over");
}
}
}
public static class T2 extends Thread{
public void run(){
synchronized (person){
System.out.println(System.currentTimeMillis()+"T2 come");
person.notify();
System.out.println(System.currentTimeMillis()+"T2 over");
try{
Thread.sleep(2000);
}catch (InterruptedException r){
r.getStackTrace();
}
}
}
}
public static void main(String args[]){
try{
Thread thread1=new T1();//线程1
Thread thread2=new T2();//线程2
thread1.start();
thread2.start();
}catch (Exception e){
e.printStackTrace();
}
}
}
notify()wait()和synchronized一起用的案例
最新推荐文章于 2023-10-19 16:51:42 发布