带小孩到广州旅游攻略:有限状态机(FSM)的设计问题.

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 04:05:41
有限状态机(FSM)的设计问题.设计了一个FSM,有三个线程各自异步访问和操作该FSM.每个状态转移函数都有互斥量保护.大多数情况下运行正常.可现在问题出现:T1由状态S1进入某一个状态转移函数S1()并获取锁住互斥量,与此同时T2也由S1进入S1(),由于无法获得信号量而block住;T1在S1内将状态转移为S2并释放互斥量,T2得到互斥量可是此时状态已经是S2因此如果再调用S1()是不正确的,求解.

1)方法1:将每个状态的获得和转移用信号量保护起来,使T2在T1获得状态后就无法获得状态直到T1完成状态转移并释放信号量,该法的缺点是T2可能会block住较长时间..
求方法2??????

当T2从block出来得到互斥量时回退,重新检查状态