我创建多个线程,调用同一对象,其中一个线程对这个对象进行上锁(即同步) 当那个线程进行wait(); 则是不随机从其他线程中选一个线程来执行 ,当这个占有对象的的线程执行notify()
是不是返还给第一个线程(就那个调用wait的线程) 当这个占有对象的的线程执行 notifyAll()是不是随机从这些线程中选择一个(即不一定是调用wait的线程)

解决方案 »

  1.   

    具体那个线程是有cpu的调度规则来决定的,你notify只是放到就绪队列中了
      

  2.   

    notifyAll()唤醒所有你说的是使用“同一对象”加锁的线程
      

  3.   

    notifyAll()唤醒所有,同一对象应该用notify
      

  4.   

    运行哪个线程是由CPU和操作系统来操作的同步块只是加了个门
    比如有2个人要进入一个房间
    而那个房间只能进去一个人
    同步语句就是这个房间的门
    一个人进去了另外一个人就进不去(进程堵塞)
    用notify()就是唤醒那个进程堵塞的人让他再次尝试进入房间
    (notifyAll()同理醒所有进程堵塞的人让他再次尝试进入房间)
    但是在前面那个进入房间的人没有出来前(就是把同步块的语句运行完)
    其他的人不管怎么样都进不去