ITPub博客

首页 > 应用开发 > > python多线程threading的Thread使用案例详解

python多线程threading的Thread使用案例详解

作者:u_151d1ef45539 时间:2019-11-18 13:43:32 0 删除 编辑

来源:厚积薄发爱python 


本文讲述2个函数任务,使用python的多线程同时执行这2个任务,代码如下:

from threading import Thread #导入线程函数
from time import sleep #导入时间休眠函数
def task1(n): #定义任务1
 for x in range(n): #遍历数组n里的x
 print("正在运行任务1,打印:",x) #打印正则运行任务1,打印x的值
 sleep(0.5) #时间休眠0.5秒

def task2(): #定义任务2
 list1=["北京欢迎您","红日","故宫的记忆","义勇军进行曲"] #定义列表1位4首歌曲名
 for info in list1: #遍历list1里的信息
 print("正在运行任务2,听音乐:",info) #打印正在运行任务2,听音乐:音乐名称
 sleep(0.6) #时间休眠0.6秒

def main(): #定义main函数
 t1=Thread(target=task1,args=(6,)) #定义线程t1,线程任务为调用task1函数,task1函数的参数是6
 t2=Thread(target=task2) #定义线程t2,线程任务为调用task2函数,task2函数无参数
 t1.start() #开始运行t1线程
 t2.start() #开始运行t2线程
if __name__ == '__main__':
 main() #调用main函数


代码运行结果如下:

正在运行任务1,打印: 0

正在运行任务2,听音乐: 北京欢迎您

正在运行任务1,打印: 1

正在运行任务2,听音乐: 红日

正在运行任务1,打印: 2

正在运行任务2,听音乐: 故宫的记忆

正在运行任务1,打印: 3

正在运行任务2,听音乐: 义勇军进行曲

正在运行任务1,打印: 4

正在运行任务1,打印: 5

总结:最终实现了任务task1和task2同步进行,提高了效率

代码图例如下:

以上是两个任务同时进行,如果要实现任务1完成了再执行任务2,只需要在t1.start()后加个t1.join()即可,代码示例如下:

from threading import Thread #导入线程函数
from time import sleep #导入时间休眠函数
def task1(n): #定义任务1
 for x in range(n): #遍历数组n里的x
 print("正在运行任务1,打印:",x) #打印正则运行任务1,打印x的值
 sleep(0.5) #时间休眠0.5秒

def task2(): #定义任务2
 list1=["北京欢迎您","红日","故宫的记忆","义勇军进行曲"] #定义列表1位4首歌曲名
 for info in list1: #遍历list1里的信息
 print("正在运行任务2,听音乐:",info) #打印正在运行任务2,听音乐:音乐名称
 sleep(0.6) #时间休眠0.6秒

def main(): #定义main函数
 t1=Thread(target=task1,args=(6,)) #定义线程t1,线程任务为调用task1函数,task1函数的参数是6
 t2=Thread(target=task2) #定义线程t2,线程任务为调用task2函数,task2函数无参数
 t1.start() #开始运行t1线程
 t1.join() #t1线程完成了才执行后续的动作
 t2.start() #开始运行t2线程
if __name__ == '__main__':
 main() #调用main函数

上述代码最终的运行结果如下所示:

正在运行任务1,打印: 0

正在运行任务1,打印: 1

正在运行任务1,打印: 2

正在运行任务1,打印: 3

正在运行任务1,打印: 4

正在运行任务1,打印: 5

正在运行任务2,听音乐: 北京欢迎您

正在运行任务2,听音乐: 红日

正在运行任务2,听音乐: 故宫的记忆

正在运行任务2,听音乐: 义勇军进行曲

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927053/viewspace-3122329/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-31

  • 博文量
    155
  • 访问量
    256