关于python 多线程往上搜索到两种写法:
from concurrent.futures import ThreadPoolExecutor
buffer_size= 1024 #缓冲区大小
my_list = [1,2,3,4,5]
def cal_data(para1):
print(para1+para1)
# 方案1
executor = ThreadPoolExecutor(20)
for item in my_list:
executor.submit(cal_data,item )
# 方案2
for item in my_list:
with ThreadPoolExecutor(max_workers=20 ) as pool: # 线程池
pool.map(cal_data, item)
不知道以上两种写法有什么差别,那个效率更快呢?
第二个问题,实际项目中cal_data函数中包含删除和写入mysql数据库操作,所以就算开100个线程,内存32G,感觉还是受限数据库读取效率,所以有什么办法在开多个进程的时候提高数据库操作效率呢?