Python线程池,仅在前一个线程停止后生成

时间:2014-01-31 00:26:26

标签: python python-multithreading

我有一个读取文件的迭代器,我有一个ThreadPool(8个线程),用iterator处理这个pool.apply_async。我遇到的问题是迭代器有可能读取非常大的文件,我不想立即将整个文件加载到内存中。我知道迭代器不加载将数据保存在内存中,但仅在调用next时返回数据。

我遇到的问题是当我pool.apply_async迭代器被读到最后创建线程时。该池一次只允许8个线程运行,但我的整个文件现在都在内存中。

我正在寻找的是一个只创建8个线程的池,启动这些线程,当一个线程完成时创建另一个带有iterator.next数据的线程。这样我就不必将整个文件保存在内存中,当线程准备好处理数据时,我可以获取数据。

希望这是有道理的。我会尽快尝试一些代码。

使用python 2.7

0 个答案:

没有答案