本文講述2個函數任務,使用python的多線程同時執行這2個任務:
# 功能1:如下代碼實現了任務task1和task2同步進行,提高了效率。
1 # coding:utf-8 2 3 from threading import Thread # 導入線程函數 4 from time import sleep # 導入時間休眠函數 5 6 7 def task1(n): # 定義任務1 8 for x in range(n): # 遍歷數組n里的x 9 print("正在運行任務1,打印:", x) # 打印正則運行任務1,打印x的值 10 sleep(0.5) # 時間休眠0.5秒 11 12 13 def task2(): # 定義任務2 14 list1 = ["北京歡迎您", "紅日", "故宮的記憶", "義勇軍進行曲"] # 定義列表1位4首歌曲名 15 for info in list1: # 遍歷list1里的信息 16 print("正在運行任務2,聽音樂:", info) # 打印正在運行任務2,聽音樂:音樂名稱 17 sleep(0.6) # 時間休眠0.6秒 18 19 20 def main(): # 定義main函數 21 t1 = Thread(target=task1, args=(6,)) # 定義線程t1,線程任務為調用task1函數,task1函數的參數是6 22 t2 = Thread(target=task2) # 定義線程t2,線程任務為調用task2函數,task2函數無參數 23 t1.start() # 開始運行t1線程 24 t2.start() # 開始運行t2線程 25 26 27 if __name__ == '__main__': 28 main() # 調用main函數
執行結果:
# 功能2:如下代碼實現了任務1完成了再執行任務2,代碼示例如下:
1 # coding:utf-8 2 3 from threading import Thread # 導入線程函數 4 from time import sleep # 導入時間休眠函數 5 6 7 def task1(n): # 定義任務1 8 for x in range(n): # 遍歷數組n里的x 9 print("正在運行任務1,打印:", x) # 打印正則運行任務1,打印x的值 10 sleep(0.5) # 時間休眠0.5秒 11 12 13 def task2(): # 定義任務2 14 list1 = ["北京歡迎您", "紅日", "故宮的記憶", "義勇軍進行曲"] # 定義列表1位4首歌曲名 15 for info in list1: # 遍歷list1里的信息 16 print("正在運行任務2,聽音樂:", info) # 打印正在運行任務2,聽音樂:音樂名稱 17 sleep(0.6) # 時間休眠0.6秒 18 19 20 def main(): # 定義main函數 21 t1 = Thread(target=task1, args=(6,)) # 定義線程t1,線程任務為調用task1函數,task1函數的參數是6 22 t2 = Thread(target=task2) # 定義線程t2,線程任務為調用task2函數,task2函數無參數 23 t1.start() # 開始運行t1線程 24 t1.join() # t1線程完成了才執行后續的動作 25 t2.start() # 開始運行t2線程 26 27 28 if __name__ == '__main__': 29 main() # 調用main函數
執行結果: