首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与泽西进行多线程处理

与泽西进行多线程处理
EN

Stack Overflow用户
提问于 2016-06-24 15:24:19
回答 1查看 6.1K关注 0票数 5

这里有两个相互矛盾的环节。我宁愿相信医生:

链接1

服务器上的请求处理默认为同步处理模式。

链接2

它已经是多线程的了。

我的问题是:

这是正确的。它可以是同步的和多线程的吗?

为什么医生会这样说:

在已知资源方法执行需要很长时间来计算结果的情况下,应该使用服务器端异步处理模型。

如果文档是正确的,为什么默认操作是同步的?对于用户体验来说,在客户端javascript上所有的请求都是异步的,因此服务器端的默认操作也应该是异步的。

如果客户端不需要按特定顺序服务请求,那么谁也不关心操作的“成本”。难道不是所有的操作都是异步的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-24 16:05:37

服务器上的请求处理默认为同步处理模式。

每个请求都在一个单独的线程上处理。请求被认为是同步的,因为该请求会阻塞线程,直到请求完成处理为止。

它已经是多线程的了。

是的,服务器(容器)是多线程的.对于传入的每个请求,将从线程池中提取一个线程,并将请求绑定到特定的请求。

在已知资源方法执行需要很长时间来计算结果的情况下,应该使用服务器端异步处理模型。

是的,这样我们就不会阻塞容器线程了。容器线程池中只有那么多线程来处理请求。如果我们用长时间的处理请求将它们全部搁置起来,那么容器可能会耗尽线程,从而阻止其他请求的传入。在异步处理中,泽西将线程返回到容器,并在自己的线程池中处理请求处理本身,直到进程完成为止,然后将响应发送到容器,在容器中它可以将其发送回客户端。

如果客户端不需要按特定顺序服务请求,那么谁也不关心操作的“成本”。

不太确定客户和这里的任何事有什么关系。或者至少在你问这个问题的背景下。抱歉的。

难道不是所有的操作都是异步的吗?

不一定,如果所有的请求都是快速的。虽然你可以为它提出一个论据,但这需要性能测试,以及你可以互相对抗并做出决定的数字。每个系统都是不同的。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38016912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档