两个线程中的private Q q;是同一个对象的引用,这样才能用Q里面的synchronized,要不两个不一样的对象的话,你synchronized也是没用的

解决方案 »

  1.   

    线程不是进程,他可以与同一进程当中的其他线程共享cpu分配的进程资源包括时间片,内存或者cache空间。所以里面解释让出cpu的说法不对楼上的说同步问题,我看原来的程序就是生成了一个对象,这个对象fork了2个进程。按理说他们共享有main发起的进程。这个同步用在这里很恰当
      

  2.   

    回 fishstudio(火热的心) :  抱歉您的留言我一点都看不懂, 能说的详细些吗?
      

  3.   

    synchronized使对该方法的操作是原子性质的,及必需当一个事务完成。
    sleep()只是使当前线程睡眠,在该程序中,程序将等待不做其它的事。当该线程唤醒后,继续运行。转入睡眠的线程,应该是让出了执行CUP的资源。