是scipy.misc.imread安全/有效从多个线程运行



我已经使用Python队列设置了生产者/消费者模型。在一个生产者中,我正在使用scipy.misc.imread读取图像。

在一个线程中读取图像还不够快,每个图像需要〜0.2s才能阅读。大约20mb/sec从SSD读取

我尝试使用Python的threading模块添加另一个相同的线程。但是,在scipy.misc.imread中花费的时间增加了大约两倍,从而导致2个线程读取图像的速度大约与1一样。

我敢肯定,即使随机读取,我的SSD也可以处理40MB/sec的吞吐量。dd写作测试显示800MB/秒写速。

我想知道scipy.misc.imread是否作为线程之间的关键区域运行?我期望 multiprocessing避免问题吗?

scipy.misc.imread可以免受多个线程的安全,但是每个呼叫都锁定了全局解释器,因此性能不会受益于多线程。

它可以从多处理,没有意外的问题中运作良好。

相关内容

  • 没有找到相关文章

最新更新