kuyoro 2022-08-11 21:22 采纳率: 90.5%
浏览 67
已结题

关于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条回答 默认 最新

  • CSDN专家-sinJack 2022-08-11 21:30
    关注

    方案一快些。方案二每次循环都创建了新的线程池对象,比较浪费资源。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 修改了问题 8月11日
  • 修改了问题 8月11日
  • 展开全部

悬赏问题

  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
  • ¥50 sft下载大文阻塞卡死
  • ¥15 机器人轨迹规划相关问题