本帖最后由 ontrackfor19888 于 2010-10-31 18:36:50 编辑

解决方案 »

  1.   

    name是你当前new 的线程
    线程调用wait方法后会把当前线程放入等待池,并释放synchronized锁,下面那句不会执行
    线程创建后一直存在,wait()并不会杀死线程,只有执行完毕才会死亡
      

  2.   

    问1:这两个name打印出来分别为"thread-0"和"thread-1",分别指哪个线程啊???
    应该是你线程的执行顺序  建议你在new 完thread后 用setName 给每个线程起个名字 这样就知道是哪个了问2:这里滴代码会执行吗?为什么啊?
    就像1楼所说 wait 已经将他的同步锁释放 并将线程放到等待池问3:怎么这个状态一直是new 啊?
    你加了同步锁每次都是针对一个对象 
    wait 最好不要用  
    notify() 是随机在等待池中唤醒一个线程
    即使是notifyAll() 全部唤醒 所有线程也只会有一个线程会争用到当前执行的时间片
    多线程 是很复杂 调试也很麻烦
    所以用之前想想 是否必须要用他 当然纯粹的学习是没问题的  
    个人观点纯属虚构 如有雷同纯属雷同