Synchronized可以理解为监视器:
|-- 意思就是我找一个实体对象来监视一段代码,一个线程Threa-0来了,进入这段代码后(还没有执行完),在这个时候Thread-1也来了,那么我这个对象一看,Thread-0还没有执行完,那么我就不让Thread-1进来。Thread-1就进行等待。
|--- 然后还有其他情况:(假如只有这两个线程)Thread-1在进行等待的过程中,Thread-0执行完了。Thread-1正准备进入这段同步代码块,Thread-0又进去了。。这个对象(一直都是这一个对象)一看,我已经有一个线程在操作了,于是还不烫Thread-1进来
希望你可以明白 |