a87117869 2022-11-06 12:03 采纳率: 100%
浏览 15
已结题

python多线程代码简化,求帮助

问题遇到的现象和发生背景

有什么办法可以简化一个python多线程的代码,求帮助,刚开始学习

用代码块功能插入代码,请勿粘贴截图
def main1():
    try:

        start_tem_filling(list1[0][0], list1[0][1], list1[0][2], list1[0][3])

    except Exception:
        pass


def main2():
    try:

        start_tem_filling(list1[1][0], list1[1][1], list1[1][2], list1[1][3])
    except Exception:
        pass


def main3():
    try:

        start_tem_filling(list1[2][0], list1[2][1], list1[2][2], list1[2][3])
    except Exception:
        pass


def main4():
    try:

        start_tem_filling(list1[3][0], list1[3][1], list1[3][2], list1[3][3])
    except Exception:
        pass


def main5():
    try:

        start_tem_filling(list1[4][0], list1[4][1], list1[4][2], list1[4][3])
    except Exception:
        pass


def main6():
    try:

        start_tem_filling(list1[5][0], list1[5][1], list1[5][2], list1[5][3])
    except Exception:
        pass


def main7():
    try:

        start_tem_filling(list1[6][0], list1[6][1], list1[6][2], list1[6][3])
    except Exception:
        pass


def main8():
    try:

        start_tem_filling(list1[7][0], list1[7][1], list1[7][2], list1[7][3])
    except Exception:
        pass


def main9():
    try:

        start_tem_filling(list1[8][0], list1[8][1], list1[8][2], list1[8][3])
    except Exception:
        pass


def main10():
    try:

        start_tem_filling(list1[9][0], list1[9][1], list1[9][2], list1[9][3])
    except Exception:
        pass


if __name__ == '__main__':
    list2 = [main1, main2, main3, main4, main5, main6, main7, main8, main9, main10]
    
    try:
        for i in list2:
            multiprocessing.Process(target=i).start()
            time.sleep(3)
            
    except Exception:
        pass

运行结果及报错内容

可以跑得起来

我的解答思路和尝试过的方法

想用一个for循环去简化上面重复定义的函数

我想要达到的结果

简化这多线程的代码

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-11-06 12:21
    关注

    你定义的main函数内容都一样,只是参数不同,为什么不在Process里指定参数呢?这样就只需要一个函数了
    比如这样:

    def main1(i):
        try:
            start_tem_filling(list1[i][0], list1[i][1], list1[i][2], list1[i][3])
        except Exception:
            pass
    
    import multiprocessing
    import time
    
    if __name__ == '__main__':
        
        try:
            for i in range(10):
                multiprocessing.Process(target=main1,args=(i,)).start()
                time.sleep(3)
                
        except Exception:
            pass
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 11月6日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加