使用wait(long),可以使线程超过某个时间自动唤醒,在等待的过程中也可以被notify()唤醒
package com.myObject;
public class Object4 {
public void mothd1(Object lock) {
synchronized (lock) {
try {
System.out.println(Thread.currentThread().getName()+" wait begin " + System.currentTimeMillis());
lock.wait(5000);
System.out.println(Thread.currentThread().getName()+" wait end " + System.currentTimeMillis());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package com.myThread;
import com.myObject.Object4;
public class Thread4 extends Thread {
Object lock;
Object4 object4 = new Object4();
public Thread4(Object lock) {
this.lock = lock;
}
@Override
public void run() {
object4.mothd1(lock);
}
}
package com.test;
import com.myThread.Thread4;
public class Test4 {
public static void main(String[] args) throws InterruptedException{
Object lock = new Object();
Thread4 thread4 = new Thread4(lock);
thread4.setName("A");
thread4.start();
}
}
打印结果
A wait begin 1453102814066
A wait end 1453102819067