JAVA线程中,哪里有synchronized,那里就要有notifyAll(),写多线程一定要记得这个原则,否则是哪里出了问题,你根本就找不出来,我可是吃了够大的苦,因为我模拟的线程很多,都是1000一批,大部份时候都是不能够全部执行成功,一步步的找呀,真的很痛苦。同步一般用的比较多的用块同步、方法同步,也有些需要对类同步,对类同步则类中的所有方法都是同步的,如典型的Hashtable,就是线程安全的,也即同步的。以下摘一些写法:
块同步:
方法同步:
另外,一个同步方法调用另外一个同步方法的时候,最好两个方法中都把notifyAll()给加上,这样只有好处,不会有坏处
本文出自:冯立彬的博客