本文講述2個函數(shù)任務,使用python的多線程同時執(zhí)行這2個任務,代碼如下: from threading import Thread #導入線程函數(shù)from time import sleep #導入時間休眠函數(shù)def task1(n): #定義任務1 for x in range(n): #遍歷數(shù)組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函數(shù) t1=Thread(target=task1,args=(6,)) #定義線程t1,線程任務為調用task1函數(shù),task1函數(shù)的參數(shù)是6 t2=Thread(target=task2) #定義線程t2,線程任務為調用task2函數(shù),task2函數(shù)無參數(shù) t1.start() #開始運行t1線程 t2.start() #開始運行t2線程if __name__ == '__main__': main() #調用main函數(shù) 代碼運行結果如下: 正在運行任務1,打?。?0 正在運行任務2,聽音樂: 北京歡迎您 正在運行任務1,打印: 1 正在運行任務2,聽音樂: 紅日 正在運行任務1,打?。?2 正在運行任務2,聽音樂: 故宮的記憶 正在運行任務1,打印: 3 正在運行任務2,聽音樂: 義勇軍進行曲 正在運行任務1,打印: 4 正在運行任務1,打?。?5 總結:最終實現(xiàn)了任務task1和task2同步進行,提高了效率 代碼圖例如下: 以上是兩個任務同時進行,如果要實現(xiàn)任務1完成了再執(zhí)行任務2,只需要在t1.start()后加個t1.join()即可,代碼示例如下: from threading import Thread #導入線程函數(shù)from time import sleep #導入時間休眠函數(shù)def task1(n): #定義任務1 for x in range(n): #遍歷數(shù)組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函數(shù) t1=Thread(target=task1,args=(6,)) #定義線程t1,線程任務為調用task1函數(shù),task1函數(shù)的參數(shù)是6 t2=Thread(target=task2) #定義線程t2,線程任務為調用task2函數(shù),task2函數(shù)無參數(shù) t1.start() #開始運行t1線程 t1.join() #t1線程完成了才執(zhí)行后續(xù)的動作 t2.start() #開始運行t2線程if __name__ == '__main__': main() #調用main函數(shù) 上述代碼最終的運行結果如下所示: 正在運行任務1,打?。?0 正在運行任務1,打?。?1 正在運行任務1,打印: 2 正在運行任務1,打?。?3 正在運行任務1,打?。?4 正在運行任務1,打?。?5 正在運行任務2,聽音樂: 北京歡迎您 正在運行任務2,聽音樂: 紅日 正在運行任務2,聽音樂: 故宮的記憶 正在運行任務2,聽音樂: 義勇軍進行曲 |
|
來自: copy_left > 《python相關》