iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
Software Development

0基礎也看得懂的程式設計-30天學會 Python系列 第 27

30天學會Python: Day 26-一心多用

同步執行

目前寫的程式都是一行接著一行一行執行,這種執行的方式叫做 同步執行

print("1")
print("2")
print("3")

因為同時間只有一個地方在執行,所以只有一個執行緒

非同步/異步 執行

同時有多個地方在執行稱為 非同步 或是 異步 執行
當需要同時處理多項任務,或是其中一項任務較為耗時(例如同時上傳檔案和更新上傳進度的畫面),就可以採用異步執行
但異步執行不一定會讓整體執行變快,只是執行的順序變成不是一行接著下一行,而是依執行速度而定

透過內建的 threading 模組,可以建立更多執行緒,達到異步執行的效果

定義執行緒

新增的執行緒要執行的內容要先定義成函式

import threading

def task():
    print('2-1')
    print('2-2')
    print('2-3')

threading.Thread() 建立執行緒,用 start() 開始執行緒,join() 表示等到新執行緒結束,在開始執行接下來的內容

import threading

def task():
    print('2-1')
    print('2-2')
    print('2-3')

thread = threading.Thread(target=task)
thread.start()
thread.join()
print("End")

time 模組中的 time.sleep() 暫停執行緒,模擬兩個執行時間差異極大的情況

import threading

def task():
    print('2-1')
	time.sleep(0.5)
    print('2-2')
	time.sleep(0.5)
    print('2-3')
	time.sleep(0.5)

thread = threading.Thread(target=task)
thread.start()
print('1-1')
	time.sleep(3)
print('1-2')
	time.sleep(3)
print('1-3')
	time.sleep(3)
thread.join()
print("End")


上一篇
30天學會 Python-Day25: 今晚,我想來點...
下一篇
30天學會Python語言: Day 27-時間管理大師
系列文
0基礎也看得懂的程式設計-30天學會 Python30

尚未有邦友留言

立即登入留言