Grails控制器和服务中的线程池

Grails控制器和服务中的线程池,grails,service,concurrency,blocking,controllers,Grails,Service,Concurrency,Blocking,Controllers,我想知道控制器和服务是如何在Grails中实现的。我特别想知道,它是否以及如何为控制器和服务维护线程池 假设出现以下情况: 我有一个Grails控制器,它调用执行阻塞的服务 调用外部系统 我是否需要在服务甚至控制器中维护线程池,以便当我有多个用户同时访问我的应用程序时,应用程序不会因为一个服务中的调用而阻塞?在Grails方面,您不需要对在自己的线程中执行的每个请求做任何特定的处理,一致地 从官方文档:默认情况下,对服务方法的访问是不同步的,因此没有任何东西可以阻止这些功能的并发执行。请参阅服务

我想知道控制器和服务是如何在Grails中实现的。我特别想知道,它是否以及如何为控制器和服务维护线程池

假设出现以下情况:

我有一个Grails控制器,它调用执行阻塞的服务 调用外部系统


我是否需要在服务甚至控制器中维护线程池,以便当我有多个用户同时访问我的应用程序时,应用程序不会因为一个服务中的调用而阻塞?

在Grails方面,您不需要对在自己的线程中执行的每个请求做任何特定的处理,一致地


从官方文档:默认情况下,对服务方法的访问是不同步的,因此没有任何东西可以阻止这些功能的并发执行。请参阅服务和作用域

在Grails方面,您不需要做任何特定的事情,每个请求都在自己的线程中同时执行


从官方文档:默认情况下,对服务方法的访问是不同步的,因此没有任何东西可以阻止这些功能的并发执行。请参阅服务和范围

您所说的“阻止对外部系统的调用”是什么意思?这个系统接受同步请求吗?我指的是同步呼叫阻塞等待。是的,外部系统能够同时处理请求。你说的“阻止对外部系统的调用”是什么意思?这个系统接受同步请求吗?我指的是同步呼叫阻塞等待。是的,外部系统能够同时处理请求。这绝对是有帮助的,谢谢。您知道一些更详细的文档吗?e、 有没有办法限制每个请求产生的线程数?是否有一种机制来处理请求数量过大的情况?这取决于您的web容器。例如,Tomcat:参见maxThreadsWhat about controllers?例如,控制器对许多对象执行保存操作。它能阻止吗?我应该使用Thread.new吗?但我不能同时调用服务类中的方法。当我多次调用服务方法时,它会等待第一次执行完成,然后处理下一个请求。我认为这是把请求放在队列中,然后轮到他们执行。但我希望它同时执行。原因可能是什么?服务类名之前的“@Transactional”关键字是否阻止它同时处理请求?您是如何发现它等待的?请发布你的代码,这绝对是有帮助的,谢谢。您知道一些更详细的文档吗?e、 有没有办法限制每个请求产生的线程数?是否有一种机制来处理请求数量过大的情况?这取决于您的web容器。例如,Tomcat:参见maxThreadsWhat about controllers?例如,控制器对许多对象执行保存操作。它能阻止吗?我应该使用Thread.new吗?但我不能同时调用服务类中的方法。当我多次调用服务方法时,它会等待第一次执行完成,然后处理下一个请求。我认为这是把请求放在队列中,然后轮到他们执行。但我希望它同时执行。原因可能是什么?服务类名之前的“@Transactional”关键字是否阻止它同时处理请求?您是如何发现它等待的?请张贴您的密码