今天抽時間又學了一下python的多線程,理解的又多了一些,為了利於理解,寫了一段很簡單的代碼,如下:
import threading
from time import sleep
def task1(): #線程函數1
for i in range(0, 9):
print("i am thread one !!")
def task2(name): #線程函數2
print('hello {0} {1}'.format(name, 'weiyang'))
sleep(1)
t1 = threading.Thread(target=task1, ) #線程一,Thread函數有兩個參數,第一個是要調用的線程函數,第二個是要給所調用的線程函數所傳的參數,以元組的形式傳入,如果只有一個參數,則必須在后面加上一個',’ ,要不會報錯。
t2 = threading.Thread(target=task2, args=('zhang', )) #線程二
t1.start() #開始線程一
# t1.join()
t2.start() #開始線程二
看一下輸出結果:

可以看到,在線程一還沒執行結束時,線程二就已經開始了,這說明兩個線程之間的工作室相互獨立、互不影響的。
如果想要讓線程一執行完之后再開始線程二,可以在t1.start()的后面加一句t1.join(),這個函數的意義是線程等待,程序會停留在這里,等線程一執行完之后再繼續執行下面的代碼。
