使用ajax发出的请求成功后再次发出一个请求到tomcat,前后是同一个线程处理吗

tomcat的请求处理是采用线程处理请求的,当有一个请求过来,tomcat会指派一个线程来处理
请求,有个疑问想请教下大神,当一个请求使用ajax发出,这时候tomcat会派一个线程
来处理请求,等这个请求处理成功返回到前端js,前端ajax判断成功,这时候ajax再次发送
一个请求到tomcat,这时候tomcat处理请求还是第一次处理的那个线程来处理请求吗?
还是重新派一个线程来处理? 主要是考虑到java的ThreadLocal使用。

 Ajax({
            url: contextPath + "/mobile/findKhh/result",
            data: {
                zjbh: zjbh,
                khxm: khxm,
                yzm: yzm,
            },
            beforeSend:function(){
            },
            success: function(data){
                if(data.success) {
                    Ajax({
                        url: contextPath + "/mobile/findKhh/getGdzh",
                        data: {
                            khh: khhs
                        },
                        success: function(data){
                            if(data.success) {
                                var html = template('gdzhTemplate',data);
                                $('#gdzhResult').html(html)
                            }else {

                            }
                        }
                    });

                }
            }
 }); 

比如上面这段ajax请求代码,前后两次请求,tomcat处理请求线程会是同一个线程吗

2个回答

线程是在线程池中随机分配的

首先,ajax请求或者普通的请求,,我测了一下(后台仅使用servlet)
这两个请求服务器是相同对待的(http投两个请求好像有区别,不影响相同对待)

之前有测过,多次请求服务器线程分配情况,,
我在在这篇博客中有详细记录,可以去看看:http://blog.csdn.net/small_mouse0/article/details/76804940

Small_Mouse0
小鼠标丶 回复aoyoutaikong: 不是,,请求处理完,,线程就死了或者放回线程池,,不会等着再处理,我测试是这样的,,,可能打印出来线程名字一样,这也是上一个线程运行完,放回线程池,再拿出来,这也是新的。。。。。。。。。说了一堆,一句话“每次访问都是新线程处理,不保留状态的(大部分情况下)”
2 年多之前 回复
aoyoutaikong
aoyoutaikong 回复小鼠标丶: 那是说用ajax这前后两个请求tomcat是用同一个线程来处理是吧
2 年多之前 回复
Small_Mouse0
小鼠标丶 "线程是在线程池中随机分配的",,测试发现tomcat8.5是循环分配,tomcat7是好像是随机分配的。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!