猿问

java后台接收请求处理是单线程的吗?

前台用ajax请求后台,一个简单的操作,比如提交表单,返回成功后调用另一个ajax请求刷新列表,我后台在接收表单数据后先保存入数据库,然后返回成功,在reponse返回的代码后面接下来继续处理业务逻辑,这样在后台继续处理业务逻辑的时候前台已经得到成功的返回,然后前台继续发起刷新表单的请求,但是发现后台必须要等到前一个提交表单的请求处理完所有的业务代码后才会响应这个刷新表单的请求,感觉就像是一个线程串行在处理请求。按照我的理解一个request请求应该会从线程池中取一个新线程来处理这个请求到相应的全过程,每个请求应该都是独立的,为什么会出现这种一个线程同时处理多个请求的情况?难道是在同一页面发起的原因?因为只要另开一个页面就没问题,当前页面的阻塞不会影响到另一个页面
沧海一幻觉
浏览 679回答 2
2回答

慕的地8271018

后台肯定是多线程的,我想应该是你的后台的response设置好的时候,其实并没有真正返回给前台,要等到你业务逻辑处理完才会送响应到前台,所以给你造成了单线程的错觉。

烙印99

这样在后台继续处理业务逻辑的时候前台已经得到成功的返回这句话我不理解了,ajax去请求了后台,后台没有业务没有处理完,前台ajax怎么先得到了响应结果?还有我觉得你思考的点直接放到了后台,有考虑过ajax嵌套的情况吗(也要注意ajax的同步异步),这个没有代码也不知道,只能给个建议。至于最后提到的,我记得自己刚接触spring的时候也想过这个问题,这个和scope有关,你可以写个demo,我当时写demo测试时,设置了一个成员变量,每次请求来就++,结果发现默认是一直累加的(这个结果我都不确定了,很久很久之前写的了,你可以自己试试)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答