当前位置: 首页 > 面试题库 >

jersey多线程

叶明辉
2023-03-14
问题内容

这里有两个似乎相互矛盾的链接。我会尽快信任这些文档:

链接1

默认情况下,服务器上的请求处理在同步处理模式下工作

连结2

它已经是多线程的。

我的问题:

哪个是正确的。可以同时使用多线程吗?

为什么文档说以下内容?:

如果已知资源方法执行需要很长时间才能计算结果,则应使用服务器端异步处理模型

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

如果客户端不需要按特定顺序处理请求,那么谁在乎操作的“费用”如何。难道所有操作都不都是异步的吗?


问题答案:

默认情况下,服务器上的请求处理在同步处理模式下工作

每个请求都在单独的线程上处理。该请求被视为同步的,因为该请求将占用线程,直到该请求完成处理为止。

它已经是多线程的。

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

如果已知资源方法执行需要很长时间才能计算结果,则应使用服务器端异步处理模型

是的,这样我们就不会拖延容器线程。容器线程池中只有太多线程可以处理请求。如果我们用长的处理请求将它们全部占用,则容器可能会用完线程,阻止其他请求进入。在异步处理中,Jersey将线程交还给容器,并自行处理请求线程池,直到该过程完成,然后将响应发送到容器,容器可以将其发送回客户端。

如果客户端不需要按特定顺序处理请求,那么谁在乎操作的“费用”如何。

不太确定客户在这里要做什么。或者至少在您如何提出问题的情况下。抱歉。

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

如果所有请求都很快,则不一定。尽管您可以对此进行论证,但是这需要性能测试,并且您可以相互抗衡并从中做出决定。每个系统都是不同的。



 类似资料:
  • 问题内容: 我已经在我的应用程序中以相同的方式使用了本教程:http : //www.benmccann.com/hibernate-with-jpa-annotations- and-guice/ 我的应用程序是JAX-RS Web服务,它将接收许多并发请求并进行数据库更新。 GenericDAOImpl.java实现: } 如果2个并发线程尝试保存实体,我得到 如果我评论交易,保存效果很好。

  • typora-copy-images-to: img 1. 多线程概述 人们在日常生活中,很多事情都是可以同时进行的。例如,一个人可以一边听音乐,一边打扫房间,可以一边吃饭,一边看电视。在使用计算机时,很多任务也是可以同时进行的。例如,可以一边浏览网页,一边打印文档,还可以一边聊天,一边复制文件等。计算机这种能够同时完成多项任务的技术,就是多线程技术。Java是支持多线程的语言之一,它内置了对多线

  • 使用 [Web Workers][web-workers]可以在系统级线程中运行JavaScript。 多线程Node.js 在 webPreferences中将 n​​odeIntegrationInWorker选项设置为 true,可以在Electron的Web Workers中使用Node.js功能: 1 let win = new BrowserWindow({ 2 webPreferen

  • If you use Casbin in a multi-threading manner, you can use the synchronized wrapper of the Casbin enforcer: https://github.com/casbin/casbin/blob/master/enforcer_synced.go (GoLang) and https://github.

  • 多线程 Swift多线程编程方案 Thread Cocoa Operation (Operation 和 OperationQueue) Grand Central Dispath (GCD) 1. Thread在三种多线程技术中是最轻量级的, 但需要自己管理线程的生命周期和线程同步. 线程同步对数据的加锁会有一定的系统开销. detachNewThread(_ block: @escaping

  • 在多线程运行环境中, Configuration 实例, Template 实例和数据模型应该是永远不能改变(只读)的对象。 也就是说,创建和初始化它们(如使用 set... 方法)之后,就不能再修改它们了(比如不能再次调用 set... 方法)。 这就允许我们在多线程环境中避免代价很大的同步锁问题。要小心 Template 实例; 当使用了 Configuration.getTemplate 方