Gre*_*ory 3 java multithreading asynchronous jax-rs jersey
以下两个链接似乎相互矛盾.我很快就会信任这些文档:
默认情况下,服务器上的请求处理在同步处理模式下有效
它已经是多线程的.
我的问题:
哪个是对的.可以同步和多线程吗?
为什么文档会说以下内容?:
如果已知资源方法执行需要很长时间来计算结果,则应使用服务器端异步处理模型
如果文档是正确的,为什么默认操作是同步的?对于用户体验,默认情况下,所有请求在客户端javascript上都是异步的,因此服务器端的默认操作也应该是异步的.
如果客户端不需要按特定顺序提供请求,那么谁在乎操作的"昂贵".不应该所有操作都只是异步吗?
Pau*_*tha 11
默认情况下,服务器上的请求处理在同步处理模式下有效
每个请求都在一个单独的线程上处理.该请求被认为是同步的,因为该请求会保留线程,直到请求完成处理.
它已经是多线程的.
是的,服务器(容器)是多线程的.对于每个进入的请求,都会从线程池中获取一个线程,并且该请求与特定请求相关联.
如果已知资源方法执行需要很长时间来计算结果,则应使用服务器端异步处理模型
是的,这样我们就不会阻止容器线程了.容器线程池中只有很多线程来处理请求.如果我们用长处理请求来保存它们,那么容器可能会用完线程,阻止其他请求进入.在异步处理中,Jersey将线程交给容器,并自己处理请求处理本身线程池,直到进程完成,然后将响应发送到容器,在那里它可以将响应发送回客户端.
如果客户端不需要按特定顺序提供请求,那么谁在乎操作的"昂贵".
不确定客户在这里做了什么.或者至少在您如何提出问题的背景下.抱歉.
不应该所有操作都只是异步吗?
如果所有请求都很快,不一定.虽然你可以为它做一个论证,但这需要性能测试,你可以相互抵制并从那里做出决定的数字.每个系统都不同.
| 归档时间: |
|
| 查看次数: |
4552 次 |
| 最近记录: |