多線程能夠近似於看做多任務的同時執行,線程是操做系統中直接支持的單元,各類主流語言都有多線程技術,可是 Python 建立的線程實例是真正實際的線程,不是虛擬模擬的。php
Python 中提供了兩個庫,threading 和 _thread ,Python3 推薦使用前者。前者也對後者進行了封裝。html
啓動一個線程,其實就是將要運行的任務封裝到一個函數裏面,建立一個線程實例,並將這個函數傳入線程實例,最後開始運行線程便可。python
目前實際的體會到的線程的主要特色:ios
def my_func():
print("個人線程 %s 正在運行..." % threading.current_thread().name)
n=0
while n<3:
n += 1
print("%s >>> %s" % (threading.current_thread().name, n))
time.sleep(1)
print('個人線程 %s 結束' % threading.current_thread().name)
print("主線程 %s 正在運行..." % threading.current_thread().name)
t = threading.Thread(target = my_func, name = 'myThread')
t.start()
t.join()
print("主線程 %s 結束" % threading.current_thread().name)
複製代碼
運行結果:bash
主線程 MainThread 正在運行...
個人線程 myThread 正在運行...
myThread >>> 1
myThread >>> 2
myThread >>> 3
個人線程 myThread 結束
主線程 MainThread 結束
複製代碼
小結:微信
每一個進程中默認啓動至少有一個子線程,被稱爲主線程,叫 MainThread ,由主線程能夠啓動其餘子線程,子線程的名字在建立時能夠定義。不指定則默認按 Thread-1,Thread-2... 方式命名。網絡
threading 模塊中的的 current_thread() 函數,返回當前實例多線程
本文參考(不分前後順序):yii
菜鳥:www.runoob.com/python3/pyt…svg
廖雪峯的網站:www.liaoxuefeng.com/wiki/101695…
但願看客老爺打賞些喝茶錢