Python多執行緒(一) 多執行緒的建立

2022-06-24 20:21:11 字數 2602 閱讀 2462

在python3中,多執行緒主要使用threading模組

首先,來看乙個單任務模式的例子

import

datetime,time

defeat_hotpot(food):

for i in range(2):

print(datetime.datetime.now().strftime('

%x') + '

' + "

eat

" +str(food))

time.sleep(2) #每一次呼叫耗時2s

defwatch_tv(movie):

for i in range(2):

print(datetime.datetime.now().strftime('

%x') + '

' + "

watch

" +str(movie))

time.sleep(2)#每一次呼叫耗時2s

if__name__ == '

__main__':

eat_hotpot("毛肚

")watch_tv(

"末代皇帝")

print(datetime.datetime.now().strftime('

%x') + '

' + "

吃火鍋,看電視都結束啦~~

")

14:45:35eat 毛肚

14:45:37eat 毛肚

14:45:39watch 末代皇帝

14:45:41watch 末代皇帝

14:45:43 吃火鍋,看電視都結束啦~~

#時間都相隔2s,執行完程式,耗時8s

執行的結果如上,可以看出,每呼叫一次耗時2s,整個程式是線性執行的。

接下來我們將程式改造一下:

import

threading

import

datetime,time

defeat_hotpot(food):

for i in range(2):

print(datetime.datetime.now().strftime('

%x') + '

' + "

eat

" +str(food))

time.sleep(2)

defwatch_tv(movie):

for i in range(2):

print(datetime.datetime.now().strftime('

%x') + '

' + "

watch

" +str(movie))

time.sleep(2)

if__name__ == '

__main__':

#建立兩個子執行緒

t1 = threading.thread(target=eat_hotpot,args=('毛肚'

,)) t2 = threading.thread(target=watch_tv,args=('

末代皇帝

',))

#啟動兩個執行緒

t1.start()

t2.start()

#主線程

print(datetime.datetime.now().strftime('

%x') + '

' + "

吃火鍋,看電視都結束啦~~

")

14:49:43eat 毛肚

14:49:43watch 末代皇帝

14:49:43 吃火鍋,看電視都結束啦~~ #可以看到eat_hotpot,watch_tv,和主線程都在14:49:43這一時刻同時啟動

14:49:45watch 末代皇帝 #主線程結束後,子執行緒繼續執行

14:49:45 eat 毛肚  #執行完程式,耗時2s       

使用threading模組建立多執行緒,最主要是使用thread這個類,建立thread物件後,讓他執行,給個thread代表乙個執行緒,在每個執行緒中讓程式處理不同的任務,這就是多執行緒程式設計

threading.thread(group=none, target=none, name=none, args=(), kwargs={}, *, daemon=none)

target:執行緒呼叫的物件,就是函式名,注意不用寫括號

name:執行緒的名字,預設值為「thread-n「,n是乙個數字。

args:為目標函式傳遞的引數,元組,如果只有乙個引數,需要有逗號

kwargs:為目標函式傳遞的關鍵字引數,字典

另外該模組還有如下的一些方法和屬性

current_thread()   #

當前執行緒

thread.getname() #

獲取執行緒name

thread.setname() #

設定執行緒name

thread.ident #

獲取執行緒識別符號

thread.is_alive()

thread.isalive()

#判斷執行緒是否啟用

C 多執行緒 一 多執行緒的相關概念

什麼是程序?當乙個程式開始執行時,它就是乙個程序,程序包括執行中的程式和程式所使用到的記憶體和系統資源。而乙個程序又是由多個執行緒所組成的。什麼是執行緒?執行緒是程式中的乙個執行流,每個執行緒都有自己的專有暫存器 棧指標 程式計數器等 但 區是共享的,即不同的執行緒可以執行同樣的函式。什麼是多執行緒...

(一)多執行緒之執行緒理論

一 什麼是執行緒 在傳統作業系統中,每個程序有乙個位址空間,而且預設就有乙個控制線程。執行緒顧名思義,就是一條流水線工作的過程 流水線的工作需要電源,電源就相當於cpu 而一條流水線必須屬於乙個車間,乙個車間的工作過程是乙個程序,車間負責把資源整合到一起,是乙個資源單位,而乙個車間內至少有一條流水線...

c 11 多執行緒一 多執行緒應用

c 98標準中並沒有執行緒庫的存在,而在c 11中終於提供了多執行緒的標準庫,提供了管理執行緒 保護共享資料 執行緒間同步操作 原子操作等類。多執行緒庫對應的標頭檔案是 include,類名為std thread。例子 include include void function 1 intmain ...