登入
首頁 所有文章 Python Python多執行緒——Threading模組
長也   2019-03-13 17:45:56(8個月前)    427點閱   0喜歡  0收藏
Python多執行緒——Threading模組  

Threading模組

要在python中建立多執行緒的應用程式就可以利用這個模組,並且已經內建於python當中不必再安裝。

建立子執行緒

import threading
import time


def work():
    for i in range(5):
        print('Working!', i)
        time.sleep(1)


t = threading.Thread(target=work)

t.start()

for i in range(4):
    print('Main:', i)
    time.sleep(1)

t.join()

print('All Done!')

先建立一個子執行緒函數'work',再利用threading.Thread(target=work)的方法將work方法加入子執行緒當中,其中target要放要加入子執行緒的函數,’start()’開始執行執行緒。而join()則會等該執行緒執行完成後,才會繼續接下來的動作。

Working! 0

Main: 0

Working! 1

Main: 1

Working! 2

Main: 2

Working! 3

Main: 3

Working! 4

All Done!

由於Main執行3次而已,故會等work結束後才輸出All Down!

建立多子執行緒

平行程式通常會需要多個子執行緒並帶入參數

import threading
import time


def work(n):
    for i in range(n):
        print('Working!', i)
        time.sleep(1)

threads = []
for i in range(5):
        threads.append(threading.Thread(target=work, args=(i,)))
        threads[i].start()


for i in range(4):
    print('Main:', i)
    time.sleep(1)

for i in range(5):
        threads[i].join()
print('All Done!')

以threads.append將子執行緒放進threads串列當中,而帶入參數則在target後加入args,請注意' , '  逗號是必須的。

Working! 0

Working! 0

Working! 0

Working! 0

Main: 0

Working! 1

Working! 1

Working! 1

Main: 1

Working! 2

Main: 2

Working! 2

Main: 3

Working! 3

All Done!

 

本文作者:長也

糾結與想不開的資管系學生,之前常碰PHP,現在常碰到的是Python,閒暇之餘就記錄一些筆記。

             

如要發表回覆,請先 登入

  0則回覆