线程阻塞的原因可能是
1) 线程已经被设置了一定长度的睡眠时间。
2) 调用了suspend()方法,它将一直保持阻塞直到resume()方法被调用。
3) 该线程因为被调用了wait()方法被暂停了,当收到notify 或者notifyAll 消息的时候
该线程会重新被激活。一定长度理解不了!

解决方案 »

  1.   

    wren4255 () 在CSDN社区共有可用分:1426, 已花费可用分:1426, 剩余可用分:0, 总技术分:10 , 已花费技术分:0, 总非技术分:116, 上次排名:257776 名,现在排名:197235 名 
      

  2.   

    是说当前线程调用了sleep(毫秒);方法吧, 当前线程调用了sleep(time);方法,所以当前线程就阻塞在此处,直到time时间完为止.
      

  3.   

    这个简单的,wait(),notify()相当于pthread里的pthread_cond_t了,就是说当前线程wait之后,它持有的锁(pthread_mutex_t)就会放掉,使当前线程wait的条件不成立,使得能继续执行,并在执行时,该线程又得到了锁!
    thread 1:
    pthread_mutex_lock(&mutex);
    while(!condition())
       pthread_cond_wait(&cond,&mutex);
    nextOperation();
    pthread_mutex_unlock(&mutex);thread 2:
    pthread_mutex_lock(&mutex);
    letConditionAvailable();
    pthread_mutex_unlock(&mutex);
    pthread_cond_signal(&cond);