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

发布于 2022-09-07 11:43:17 字数 343 浏览 18 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

桜花祭 2022-09-14 11:43:17

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

落花浅忆 2022-09-14 11:43:17

这样在后台继续处理业务逻辑的时候前台已经得到成功的返回
这句话我不理解了,ajax去请求了后台,后台没有业务没有处理完,前台ajax怎么先得到了响应结果?

还有我觉得你思考的点直接放到了后台,有考虑过ajax嵌套的情况吗(也要注意ajax的同步异步),这个没有代码也不知道,只能给个建议。

至于最后提到的,我记得自己刚接触spring的时候也想过这个问题,这个和scope有关,你可以写个demo,我当时写demo测试时,设置了一个成员变量,每次请求来就++,结果发现默认是一直累加的(这个结果我都不确定了,很久很久之前写的了,你可以自己试试)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文