子线程业务:循环10次
主线程业务:循环20次
这两个循环(业务)需要交替执行共50次
要用到共同数据的(包括同步锁)或共同算法(加密解密)的若干个方法应该归在同一个类上,这种设计正好体现了高内聚和程序的健壮性
中使用while防止假唤醒,使用if就不行
虚假唤醒就是一些obj.wait()会在除了obj.notify()和obj.notifyall()的其他情况被唤醒,而此时是不应该返回的,所以要加条件判断。
使用lock和condition改写代码
<a href="http://tianxingzhe.blog.51cto.com/3390077/1716805" target="_blank">http://tianxingzhe.blog.51cto.com/3390077/1716805</a>