在Spring中可以安全地在请求线程中生成一个新线程

时间:2014-02-25 11:11:55

标签: multithreading spring controller thread-safety

我有一个弹簧控制器。来自控制器的请求线程将传递给@Service带注释的Service类。现在我想做一些后台工作,请求线程必须有一些如何触发后台线程并继续它自己的工作,不应该等待后台线程完成。

我的第一个问题:is this safe to do this.? 第二个问题:how to do this.?

1 个答案:

答案 0 :(得分:2)

  

这样安全

不是真的。如果你有很多并发用户,你将为每个人生成一个线程,而大量的线程可能会让你的服务器瘫痪。应用服务器使用一个线程池,正是为了避免这个问题。

  

如何做到这一点

我会使用asynchronous capabilities of Spring来做到这一点。调用使用@Async注释的服务方法,服务方法将由另一个线程从可配置池执行。