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