客户端发一个HTTP请求上来,对应的servlet的执行过程中sleep了N次。
先一个请求执行过程中再发一个HTTP请求上来,可是直到前一个请求返回之后才轮到后一个请求执行。
请问为什么sleep之后后一个请求代表的线程不能抢到CPU呢?想抢到的话是否可行?该如何做呢?

解决方案 »

  1.   

    调用完sleep方法之后 线程状态应该会转换到就绪状态啊  不能抢到cpu是不是优先级的问题?
      

  2.   

    你怎么知道后一个请求没抢到线程?
    后一个请求一样得sleep,前面的请求都sleep醒了,返回了,后面的继续sleep呢。
      

  3.   

    调用yield()是暂停当前正在执行的线程对象,并执行其他线程。而sleep()是暂停当前正在执行的线程对象但不让出cpu使用权,你使用yield()方法就好了
      

  4.   

    2楼说的也对  你访问的是一个servlet吗?如果是得话 2楼有道理,如果不是的话就是这个原因了:
    调用yield()是暂停当前正在执行的线程对象,并执行其他线程。而sleep()是暂停当前正在执行的线程对象但不让出cpu使用权,你使用yield()方法就好了