通过UML和线程安全性动态创建的状态机

问题描述

我有一个Spring Boot应用程序,可以从多个UML文件动态创建UmlStateMachineModelFactory对象。

Resource resource =  new ClassPathResource("Coding_Std.uml");
UmlStateMachineModelFactory factory = new UmlStateMachineModelFactory(resource);
factory.setStateMachineComponentResolver(stateMachineComponentResolver());

StateMachineBuilder.Builder<String,String> builder = StateMachineBuilder.<String,String>builder();
builder.configureModel().withModel().factory(factory);
builder.configureConfiguration().withConfiguration().autoStartup(false).taskExecutor(concurrentTaskExecutor);
StateMachine<String,String> stateMachine1 = builder.build();

假设我现在有stateMachine2和stateMachine3。

  1. 我有一个Map,通过状态机名称文件名)存储状态机。
  2. 我有一个控制器,如果状态从1到另一状态的转换是合法的,则该控制器发送带有状态信息和“询问”的对象。

我为该请求加载了适当的状态机。

问题出在我的控制器上,如果我这样做:

StateMachine<String,String> machine = statemachineMap.get("name of machine");
....
machine.start();

问题:机器线程安全吗?该机器具有指示过渡是否合法的防护措施,并更新一些内部线程参数。

我无法使用StateMachine工厂,因为我无法使用注释方法,也无法将机器添加到工厂。

获得线程安全状态机的建议机制是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)