我需要编写一个Web服务,通过使用启发式算法解决复杂问题。只要POST请求中指定的时间已过(即传递timeAllowance = 60将确保启发式算法在60秒后停止并返回找到的最佳解),算法将运行。长时间运行HTTP请求和线程同步
启发式算法必须在多个线程上运行才能利用所有服务器核心。在算法执行过程中,这些方法必须相互“沟通”。每个线程将运行启发式算法,并在一定的时间后,线程将传达他们找到的解决方案,并且如果允许的时间未到期,则会使用不同的初始群体运行新的周期。总结:
- 生成初始群体(几乎随机地)
- 启动启发式算法线程,每一个采取人口作为输入
- 一定量的时间之后,终止该线程和通信,以“控制器实体“线程发现的新群体
- 根据点2处启动的线程结果进行一些逻辑推理并生成新的群体
- 如果允许的时间未过期,则返回到第2点新的人口。否则退出
我的问题是:你将如何使用Spring MVC构造代码?
就像一个测试,我试图在服务方法中启动10个线程,并从控制器调用该方法(自动装配服务)。线程所做的一切都是睡60秒。我期待HTTP请求等待所有线程终止(即大约60秒),但实际上它会立即响应。
非常感谢任何帮助。
谢谢!
正是这样 - 从听起来像后台线程开始并且从未加入的问题 –