在执行System.out.println的时候可能会被插入线程来工作,因此,你也要让输出语句同步,否则输出的顺序和实际的顺序可能完全相反,甚至面目全非。

解决方案 »

  1.   

    不明白你的意思。如果是想问问题就直说,这样只是浪费大家的时间。
    OK?
     end 不会在最后输出因为你启动了两个线程之后,程序本身会接着运行。
      

  2.   

    endProducer 1put :0CubbyHole 1get :0Producer 1put :1CubbyHole 1get :1Producer 1put :2CubbyHole 1get :2Producer 1put :3CubbyHole 1get :3Producer 1put :4CubbyHole 1get :4Producer 1put :5CubbyHole 1get :5Producer 1put :6CubbyHole 1get :6Producer 1put :7CubbyHole 1get :7Producer 1put :8CubbyHole 1get :8Producer 1put :9CubbyHole 1get :9Consumer Done!Producer Done!这不是你想要的结果吗