Python多线程threading用法

发布时间:2019-09-16 07:35:21编辑:auto阅读(1662)

    Python里面经常会用到多线程,即所有的方法在同一时间开始运行,而不是按顺序一个一

     

    个运行。所用到的模块为threading,下面详解threading用法。

     

    • 我们写三个方法,onetwothree并正常运行。

     

    这里只截图了one()方法,twothreeone内容一样。

    wKiom1l_9KWTCtTgAAAp1kCJJF8990.png-wh_50

    按下面图中的运行方式,三个函数是分别在不同时间运行的。

    wKiom1l_9LKz7NtCAABtOuTkVXM865.png-wh_50

    • 我们用threading使三个方法在同一时间运行

     

    定义一个线程池并把要运行的线程都写到这个线程池列表里:

    threads= [] #定义一个线程池
    t1 = threading.Thread(target=one,args=(,)) #建立一个线程并且赋给t1,这个线程指定调用方法one,并且不带参数
    threads.append(t1)#t1线程装到threads线程池里
    t2 = threading.Thread(target=two)
    threads.append(t2)
    t3
    = threading.Thread(target=three)
    threads.append(t3)

    这时threads这个列表中就有三个线程装在里面了。

     

    下面就是运行这个线程池里面的线程

    for t in threads:
       
    t.setDaemon(True)#声明t为守护线程,设置的话,子线程将和主线程一起运行,并且直接结束,不会再执行循环里面的子线程
       
    t.start()
    t.join()
    #作用是执行完所有子线程才去执行主线程

    用一个for语句遍历threads里的线程,然后调用start()方法运行

    注意t.join()必须放在for语句外面。

     

    • 运行结果为在同一时间启动的

    wKioL1l_9L2SOoqzAAArsXnj3cQ747.png-wh_50

     

    是不是很快就明白threading的用法了呢?

    有问题可以交流QQ群:610845268

     


关键字