本文讲述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,听音乐: 义勇军进行曲