多线程编程一向是难点,也容易出问题。之前c#中异步委托用的很爽,python中如何实现类似效果呢?
上面的流程图中,在接收数据之后,启动一个清洗数据的线程,然后不必等待清洗结果继续接收数据。同样,在清洗数据时,启动一个保存数据的线程,然后不必等待保存结果继续清洗数据。
由于python中父线程结束时,子线程也会跟着结束。因此我这里把接收数据,清洗数据,保存数据分别放入三个不同的线程池中,这三个线程池都是主线程创建。这样可以避免接收数据的线程结束时,清洗数据线程和保存数据线程也跟着结束。
示例代码如下
import threading
lock = threading.Lock()
from concurrent.futures import ThreadPoolExecutor
import pymysql
conn = pymysql.connect(**sqlDict)
cursor = conn.