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