kuyoro
2022-08-11 21:22
采纳率: 97.2%
浏览 62

关于python 多线程

关于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,感觉还是受限数据库读取效率,所以有什么办法在开多个进程的时候提高数据库操作效率呢?

4条回答 默认 最新

相关推荐 更多相似问题