我在java应用程序中使用spring state-machine。要在状态之间移动,我们应该使用一些事件(称为Timer事件)。似乎一个线程负责管理定时器,该定时器被设置为确定何时将发生状态之间的移动(当然,如果在我们所处的状态中没有发生任何事情,则状态机将基于定时器来决定)。在转换中添加一个计时器事件(使用Papyrus定义状态机)后,即使在main方法完成后,我也会看到剩余的活动线程。我有两个问题;首先,这个线程是什么(我的意思是,这个线程与管理计时器的线程相同),其次,我如何在工作结束时终止线程?
答案 0 :(得分:0)
通过Spring TaskScheduler
计划定时器,并创建基于注释的JavaConfig默认实例ConcurrentTaskScheduler
。这是在StateMachineCommonConfiguration
如果要修改它,可以通过使用其他机器配置方法覆盖名称为TaskScheduler
的bean来提供自己的taskScheduler
来设置它。默认ConcurrentTaskScheduler
确实是基于单线程执行程序,这是你看到的。这些将在Spring Framework文档中进行更多讨论。