synchronized的两种使用方法:
1)同步对象
synchronized ( 对象名 ) {
临界区
}
2)同步方法
public synchronized 方法名 ( 参数 ) {
临界区
}
notify()方法:
它们必须用在被synchronized同步的Object的临界区内。通过的wait()我们可以使得处于临界区内的线程进入阻塞状态,同时释放被同步对象的控制权,而notify操作可以唤醒一个因调用了wait操作而处于阻塞状态中的线程,使其进入就绪状态。被重新换醒的线程会试图重新获得临界区的控制权,并继续执行临界区内wait之后面的代码。如果发出notify操作时没有处于阻塞状态中的线程,那么该信号会被忽略。