python线程池ThreadPoolExecutor.submit的数据丢失问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python线程池ThreadPoolExecutor.submit的数据丢失问题相关的知识,希望对你有一定的参考价值。

参考技术A

ThreadPoolExecutor 是 Executor 的子类,它使用线程池来异步执行调用。

关于concurrent.futures模块下的ThreadPoolExecutor类
在使用submit的时候,如果参数传进去的是生成器对象,在某些情况下,生成器对象会被消耗掉一部分或者是全部的数据

以上示例中,尝试二部分是正常且保证是没有问题
而尝试一则会在submit的时候被消耗掉一部分的数据
尝试三这里先利用tee,复制出两个副本,并且调用了其中一个转list,另一个丢给submit方法,这种情况下,数据不会产生丢失

问题一 :生成器对象为什么会在submit的时候,丢失了部分数据?
问题二 :尝试三这里复制了副本,对其中一个转list,就不会丢失数据,不转list还是会丢失数据,又是什么原理?

不知道有没知情人士可以帮忙解答下,不胜感激、

以上是关于python线程池ThreadPoolExecutor.submit的数据丢失问题的主要内容,如果未能解决你的问题,请参考以下文章

[转发]对ThreadPoolExecutor初识

多线程(基础2)

多线程(基础2)

python中设置线程池最大数量不管用

[python] ThreadPoolExecutor线程池 python 线程池

Python 线程池模块,Python 多线程