- public void run()
- {
- for (;num<=50 ;num++)
- {
- try{Thread.sleep(20);}catch(Exception e){}//<span style="background-color: rgb(255, 255, 255);">手动睡眠</span>
- synchronized(MaiPiao.class)
- {
- if(num<=50)
- {
- System.out.println(Thread.currentThread().getName()+"卖出-"+num+"-号票");
- }
- }
- try{Thread.sleep(20);}catch(Exception e){}//<span style="background-color: rgb(255, 255, 255);">手动睡眠</span>
- }
- }
复制代码 我折腾了下,又发现问题,在for里锁的前后手动睡眠,时间设大点,这样一般都是两个线程睡那儿等第三个打印,输出是下面的规律
窗口A卖出-1-号票
窗口C卖出-1-号票
窗口B卖出-1-号票
窗口A卖出-4-号票
窗口C卖出-4-号票
窗口B卖出-4-号票
窗口A卖出-7-号票
窗口C卖出-7-号票
窗口B卖出-7-号票
窗口A卖出-10-号票
窗口C卖出-10-号票
窗口B卖出-10-号票
......
|