最通俗易解的方式:
实例1:
class ThreadA {
static Object o1 = new Object();//可以是任意一个对象,或者自定义的对象
public static void main(String[] args) {
ThreadB b = new ThreadB();
b.start();
System.out.println("b is start....");
synchronized (o1)// 主线程获取o1的对象锁
{
try {
System.out
.println("Waiting for b to complete...");
o1.wait();//o1的对象锁释放,主线程进入等待状态
System.out
.println("Completed.Now back to main thread");
} catch (InterruptedException e) {
}
}
System.out.println("Total is :" + b.total);