·

可以的,实现思路基本就是生产者消费者模型,这样网络能对输入图像进行统一检测,也便于根据负载调节 batch 等参数的大小。

两个检测线程肯定比一个检测线程慢。

多线程我学得并不深,现在的 CPU 一般都是多核的,在理想情况下程序的多个线程可以在不同的核心中并行执行,提高程序的运行速度。但在 Python 中,有 GIL 的存在,导致 Python 程序在运行时实际上是单线程执行的。

因此 Python 中一般使用多进程完成并发任务,实际用起来跟多线程差不多。但多进程下使用队列通信会不会涉及到数据拷贝,以及数据拷贝带来的开销是否比多进程的好处更低,这个就需要实际对比确认了。

你可以都试试,也可以搜索一下有没有进程间共享存储区的方法,来避免拷贝。

Replies
2

谢谢指点 给我了很多的启发,后面就着手对这方面的知识进行深入一点的学习。

不客气~

Python 性能方面的东西我了解得少,只能这样大致说一下,你可以查看一下 GIL(Global Interpreter Lock)和多进程相关的博文 +1