欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python多线程 threading模块

程序员文章站 2022-05-02 12:05:48
...

用threading模块,可以实现Python多线程编程。

import threading
import time

def video(secs):
    for i in range(secs):
        print("边看瘦身操......%d" % i)
        time.sleep(1)

def dance(secs):
    for i in range(secs):
        print("边跳舞...%d" % i)
        time.sleep(1)

def drink(secs):
    time.sleep(secs)
    print("中间喝点水")

threads = []
t1 = threading.Thread(target=video, args=(10,))
t2 = threading.Thread(target=dance, args=(10,))
t3 = threading.Thread(target=drink, args=(5, ))
threads.extend([t1, t2, t3])

if __name__ == '__main__':
    print('---开始---:%s' % time.ctime())

    for t in threads:
        t.setDaemon(True)
        t.start()
    t1.join()
    t2.join()
    print('---结束---:%s' % time.ctime())

1.  import threading  # 导入threading模块,threading模块对thread模块(Python3中是_thread模块)做了一些封装,直接使用threading模块更方便。

2. 创建3个函数 video、dance、drink,下面要同时做这三件事。

3. threads = []  # 创建一个空的列表,用于后面装入线程列表。

4. t = threading.Thread(target=function, args=())  # 实例化Thread类,需要传递函数名,以及函数的参数。

参数需要以元组类型传入

空元组 (),

有一个参数 (para1,),逗号不能少

5. t.start()  # 开启线程,即让线程开始执行。

6. t.setDaemon()  # 将线程t设置为守护线程,标识该线程不重要。当主线程准备退出时,不需要等待守护线程执行完成就可以退出。

7. t.join()  # join()方法让主线程等待该线程执行完毕后再退出执行。

执行结果:

---开始---:Fri Jun 14 18:03:05 2019
边看瘦身操......0
边跳舞...0
边看瘦身操......1
边跳舞...1
边看瘦身操......2
边跳舞...2
边看瘦身操......3
边跳舞...3
边看瘦身操......4
边跳舞...4
中间喝点水
边看瘦身操......5
边跳舞...5
边看瘦身操......6
边跳舞...6
边看瘦身操......7
边跳舞...7
边看瘦身操......8
边跳舞...8
边看瘦身操......9
边跳舞...9
---结束---:Fri Jun 14 18:03:15 2019

Process finished with exit code 0