action_receiver
和environment_sender
,在每个步长都向rl线程发送请求,一个请求rl发送action信号,一个向rl发送environment,采用请求问答模式,将dssim中这两个系统都设置为客户端,rl中维护一个服务端来监听请求,使用一个类RLMessagerHandler
实现。action_receiver
的output方法向rl发出action请求信号,阻塞等待rl的回应,得到回应后就输出。environment_sender
的ouput方法向rl发送environment,收到rl传回的确认信号之后就完成了。RLMessagerHandler
循环发出action和接收environment来保证两者同步运行。action_receiver
的terminate方法会像rl发出结束信号,rl收到结束信号后再停止。RLMessagerHandler
发出请求提前结束信号,但是不退出。此信号会在dssim的下一个大步长被读到,此时会立刻结束仿真,调用terminate方法来通知dssim要结束,rl收到信号后再退出。也就是除了主动调用RLMessagerHandler
请求提前结束之外,其他动作和正常结束相同,保证所有信号通信不会被阻塞。
本文章使用limfx的vscode插件快速发布