python多執行緒

2022-09-22 05:54:09 字數 2144 閱讀 8388

target執行緒呼叫的物件,就是目標函式

name為執行緒起個名字

args為目標函式傳遞實參,元組

kwargs為目標函式關鍵字傳參,字典

import

threading

#最簡單的執行緒程式

defworker(age):

print("

i'm working my age is {}

".format(age))

print('

fineshed')

t = threading.thread(target=worker, name='

worker

', args=(18,)) #

執行緒物件,args必須用元組

t.start() #

啟動

import

threading

#最簡單的執行緒程式

defworker(tim):

print("

i'm working")

time.sleep(tim)

print('

sleep {},fineshed

'.format(tim))

t1 = threading.thread(target=worker, name='

worker1

', args=(10,)) #

daemon不寫的話預設為none,整合主線程屬性

t2 = threading.thread(target=worker, name='

worker2

', args=(30,), daemon=true)

t1.start() #啟動

t2.start() #

啟動print('

main finish

')

daemon總結:

執行緒具有乙個daemon屬性,可以手動設定為true或false,也可以不設定,則取預設值none

如果不設定daemon,就取當前執行緒的daemon來設定它

主線程是non-daemon執行緒,即daemon = false

從主線程建立的所有執行緒的不設定daemon屬性,則預設都是daemon = false,也就是non

daemon執行緒

python程式在沒有活著的non-daemon執行緒執行時,程式退出,也就是除主線程之外剩下的只能

都是daemon執行緒,主線程才能退出,否則主線程就只能等待

import

threading

#最簡單的執行緒程式

defworker(tim):

print("

i'm working")

time.sleep(tim)

print('

sleep {},fineshed

'.format(tim))

t1 = threading.thread(target=worker, name='

worker1

', args=(10,)) #

daemon不寫的話預設為none,整合主線程屬性

t2 = threading.thread(target=worker, name='

worker2

', args=(30,))

t1.start() #啟動

t1.join() #

t1被阻塞,執行執行結束t2才會執行(常用於一些初始化,優先設定基本條件等)

t2.start() #

啟動print('

main finish

')

join(timeout=none)

join方法是執行緒的標準方法之一

乙個執行緒中呼叫另乙個執行緒的join方法,呼叫者將被阻塞,直到被呼叫執行緒終止,或阻塞超時

乙個執行緒可以被join多次

timeout引數指定呼叫者等待多久,沒有設定超時,就一直等到被呼叫執行緒結束

呼叫誰的join方法,就是join誰,就要等誰

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

python多執行緒詳解 Python多執行緒詳解

前言 由於最近的工作中一直需要用到python去處理資料,而在面對大量的資料時,python多執行緒的優勢就展現出來了。因而藉此機會,盡可能詳盡地來闡述python多執行緒。但對於其更底層的實現機制,在此不做深究,僅是對於之前的一知半解做個補充,也希望初學者能夠通過這篇文章,即便是照葫蘆畫瓢,也能夠...

python程式多執行緒 PYTHON多執行緒

在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...