zl程序教程

您现在的位置是:首页 >  Python

当前栏目

EasyNVR优化多通道情况下程序关闭的速度

2023-03-20 15:01:18 时间

我们经常会对目前现有的视频平台做日常的功能测试和开发测试,每次在测试EasyNVR项目时需要频繁的开启和关闭。有时发现EasyNVR关闭很慢,要一分钟左右才能关闭成功,为了方便后期测试,我们决定优化这个地方。

为了找出原因,我们在关闭的地方添加了日志打印,经过查看日志后发现在关闭程序时会先关闭所有通道,当开启的通道数量多了以后就会出现关闭缓慢的情况:

而关闭通道的代码不是并发操作,通道只能一个一个关闭,而且也不能直接使用go启动协程关闭,因为后面的代码逻辑需要所有通道关闭完成后才能执行。

想要达到并发操作,并且所有操作完成后在执行下一步就可以使用WaiteGroup方法,所有通道在协程中同时关闭,在所有通道关闭完成后才会继续执行后面的代码。

修改完成后测试在启动多通道时关闭程序可以在几秒内完成,一定程度上节省了测试的时间。