线程之间通信
1.线程是操作系统的独立的个体,但这些个体如果不经过特殊处理就不能成为一个整体。
2.使用wait、notify,方法实现线程通信(2个方法都是需要object方法)
3.wait(释放锁)、notify(不会释放锁)必须配合; i < 10; i++) {
myThread2_1.add();
System.err.println("当前线程:" + Thread.currentThread().getName() + "添加了一个元素");
Thread.sleep(500);
if (myThread2_1.size() == 5) {
System.err.println("发起通知");
o.notify();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}, "t1");
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
synchronized (o) {
if (myThread2_1.size()!= 5) {
System.err.println("t2 进入");
try {
o.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.err.println("当前线程:" + Thread.currentThread().getName() + "收到通知...");
}
}
}, "t2");
t2.start();
t1.start();
}
}