Python3 多執行緒的兩種實現方式

2021-10-09 17:28:13 字數 1443 閱讀 6925

python的標準庫提供了兩個模組:_thread和threading,_thread是低階模組,threading是高階模組,對_thread進行了封裝。絕大多數情況下,我們只需要使用threading這個高階模組。

方式一:

把乙個函式傳入並建立thread例項,然後呼叫start()開始執行

import threading

defloop()

:for i in

range(30

):print

(threading.current_thread(

).name +

" --- "

+str

(i))

threada = threading.thread(target=loop, name=

"執行緒a"

)threadb = threading.thread(target=loop, name=

"執行緒b"

)threada.start(

)threadb.start(

)

執行結果部分截圖如下:

方式二:

定義乙個類,繼承自 threading.thread類,使用 init(self) 方法進行初始化,在 run(self) 方法中寫上該執行緒要執行的程式,然後呼叫 start() 方法執行

'''

'''import threading

class

mythread

(threading.thread)

:def

__init__

(self, name)

: threading.thread.__init__(self)

self.name = name

defrun(self)

:for i in

range(20

):print

(threading.current_thread(

).name +

" --- "

+str

(i))

threada = mythread(

"執行緒a"

)threadb = mythread(

"執行緒b"

)threada.start(

)threadb.start(

)

執行結果部分截圖如下:

可以看到,輸出結果中,執行緒 a、b 的順序是混在一起的。

python3 開啟多執行緒的兩種寫法

寫法一 importtime from threading importthread deffunc name print f 開始 time.sleep 0.5 print f 結束 if name main t1 thread target func,args 執行緒1 t2 thread ta...

python多執行緒的兩種實現方式

第一種 利用threading中的thread方法實現 import threading import time defeat 迴圈列印,延遲一秒 while true print 我在吃飯 time.sleep 1 defdrink while true print 我在喝水 time.sleep...

多執行緒兩種實現方式

public class testthread1 extends thread public static void main string args 執行結果如下 可見執行緒由cpu隨機排程的。public class testthread2 extends thread override pub...