0

我在 java 应用程序中使用 spring 状态机。要在状态之间移动,我们应该使用一些事件(称为 Timer Event)。似乎有一个线程负责管理计时器,这些计时器设置为确定何时会发生状态之间的移动(如果在我们所处的状态下没有任何事情发生,状态机肯定会根据计时器做出决定)。在将计时器事件添加到转换后(使用 Papyrus 定义状态机),即使在 main 方法完成后,我也看到了剩余的活动线程。我有两个问题;首先,这个线程是什么(我的意思是,这个线程与管理计时器的线程相同),其次,我如何在工作结束时终止线程?

4

1 回答 1

0

计时器通过 Spring 调度,TaskScheduler并使用基于注释的 JavaConfig 默认实例ConcurrentTaskScheduler创建。这是在StateMachineCommonConfiguration中完成的

如果您想修改它,您可以通过使用其他机器配置方法TaskScheduler覆盖名称的 bean来提供您自己的设置。taskScheduler默认ConcurrentTaskScheduler确实是一个基于单线程的执行程序,这就是您所看到的。这些在 Spring Framework 文档中有更多讨论。

于 2016-11-28T11:27:40.070 回答