[问题] 平行处理问题

楼主: chhuang17 (chhuang17)   2021-08-31 16:05:13
不知道板上有没有人利用过VISSIM车流模拟软件
并利用COM进行二次开发的经验
如果有的话希望能站内信,想好好跟前辈们请教QQ
小弟希望能一口气控制10个号志化路口
原先做法想说个别路口的控制分别写成一个函式,
用multi-processing同时运行10个函式
不过实作后发现不可行
上网查了一下才发现multi-processing无法处理有次序性的问题,
因为利用VISSIM COM控制灯号变换时,必须设定好break的时间点,暂停当前模拟状态,
然后才能切换我要的灯号,
而这些break的时间点必须由小至大依序排列,否则与VISSIM内部软件的时间对不上
(比方说我想break在200秒的时候,但VISSIM的模拟秒数已经跑400秒了,
此时我在外部写的break at 200s 那行程式将会报错)
也许用过VISSIM的板友不多,不过最主要是想问
python有没有办法处理这种有次序性平行处理的方法呢?
(我知道我讲得很乱,详细的说明,有需要会再附上程式码说明)
作者: tsoahans (ㄎㄎ)   2021-08-31 17:09:00
coroutine?
作者: lycantrope (阿宽)   2021-08-31 17:41:00
想要有次序可以给queue FIFO
作者: TitanEric (泰坦)   2021-08-31 20:38:00
留一个dict mapping号志ID跟对应的function?ai计算该改变哪个号志出来再执行
作者: lycantrope (阿宽)   2021-09-01 00:27:00
可以用lock,在AI更新时制计画时把平行处理锁起来啊

Links booklink

Contact Us: admin [ a t ] ucptt.com