# 主線程:
# 當⼀個程序啓動時,就有⼀個進程會被操作系統(OS)所創建,與此同時⼀個線程也⽴刻運⾏,該線程通常叫做程序的主線程
# 主線程的重要性有兩⽅⾯: 1)是產⽣其他⼦線程的線程; 2)通常它必須最後完成執⾏⽐如執⾏各種關閉動作。 主線程會等待所有的⼦線程結束後才結束
#
# ⼦線程
# 可以看做是程序執⾏的⼀條分⽀,當⼦線程啓動後會和主線程⼀起同時執⾏
# threading.enumerate(),這個方法可以獲取當前所有活躍線程的列表。
# 使⽤ len()對列表求⻓度可以看到當前活躍的線程的個數
import threading
from time import sleep, ctime
def dance():
for i in range(3):
print("子線程%s正在跳舞%s" %(threading.current_thread(),i))
sleep(1)
def sing():
for i in range(3):
print("子線程%s正在唱歌%s" %(threading.current_thread(),i))
if __name__ == '__main__':
print("----主線程%s開始運行----%s" %(threading.current_thread(),ctime()))
t1 = threading.Thread(target=dance)
t2 = threading.Thread(target=sing)
t1.start()
t2.start()
while True:
length = len(threading.enumerate())
print("當前的正在運行的線程數爲:%d" %length)
if length <= 1:
break
sleep(0.5)
print("主線程%s結束" % threading.current_thread())
#執行結果:
# ----開始----Wed May 20 10:16:07 2020
# 正在跳舞0
# 正在唱歌0當前的線程數爲:3
#
# 正在唱歌1
# 正在唱歌2
# 當前的線程數爲:2
# 正在跳舞1
# 當前的線程數爲:2
# 當前的線程數爲:2
# 正在跳舞2當前的線程數爲:2
#
# 當前的線程數爲:2
# 當前的線程數爲:1
#從執行結果中我們可以看出我們開闢了兩個子線程來執行唱歌和跳舞的任務,再加上主線程,
# 一開始一共有3個線程在同時運行,其中主線程是始終貫穿在程序中的,直到程序執行結束,當唱歌任務執行完了後,剩下兩個線程在運行,
# 最後就只剩下一個主線程了
python多任務之多線程介紹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.