action代码如下:
public void sleep() throws InterruptedException {
Thread.sleep(5000);
success("Awake @" + System.currentTimeMillis());
}在浏览器中发送多个请求:/sleep
各个请求均顺序完成,输出的时间依次+5s。
Sleep语句改为
Db.find("SELECT SLEEP(5)");通过数据库实现也是如此。
检查Undertow的ioThreads和workerThreads均不为1,通过IDEA运行,debug模式为false,拦截器都停用了。
请问是什么原因呢?
项目:JFinal
如果你用的是 eclipse ,在 sleep 代码处设置一个断点,在个请求到达你上面那个 sleep 代码以后,在 debug 小窗中会出现多个被挂起的线程,点击不同的挂起线程,可以在 sleep 以后继续调试
这个问题必然是与 jfinal 毫无关系的, jfinal 自然是无法干预让 Thread.sleep(...) 在多线程下串行的, 就是想干预也办不到