Python3 多執行緒程式設計

2022-06-05 21:12:08 字數 1570 閱讀 8781

python3中的多執行緒

python3關於多執行緒的模組

多執行緒使用

共享變數

繼續用保潔公司舉例子

python的標準庫提供了兩個模組:_thread和threading

import threading

import time

# 1. 類需要繼承自threading.thread

class mythread(threading.thread):

def __init__(self, arg):

super(mythread, self).__init__()

self.arg = arg

# 2 必須重寫run函式,run函式代表的是真正執行的功能

def run(self):

time.sleep(2)

print(f"run >>> ")

for i in range(1,4):

t = mythread(i)

t.start()

t.join()

print("end")

執行結果如下:

run  >>>  1

run >>> 2

run >>> 3

end

守護執行緒

常用函式

多執行緒同時訪問同一變數時,會產生共享變數的問題,造成變數衝突產生問題。

使用案例,**如下:

import threading

sum = 0

loopsum = 1000000

lock = threading.lock()

def myadd():

global sum, loopsum

for i in range(1, loopsum):

# 上鎖,申請鎖

lock.acquire()

sum += 1

# 釋放鎖

lock.release()

def myminu():

global sum, loopsum

for i in range(1, loopsum):

lock.acquire()

sum -= 1

lock.release()

if __name__ == '__main__':

print(f"starting ....")

t1 = threading.thread(target=myadd, args=())

t2 = threading.thread(target=myminu, args=())

t1.start()

t2.start()

t1.join()

t2.join()

print(f"done .... ")

執行結果:

starting ....0

done .... 0

Python3多執行緒程式設計

多執行緒使用,可以讓乙個執行緒訪問某個資源,其他執行緒給他通過queue發任務,這樣避免對共享的資源編寫繁瑣的加鎖解鎖 threading包也提供了 locks,events,condition variables,and semaphores這些工具,可以做多執行緒間的資源共享.python有乙個...

Python3多執行緒程式設計

使用多執行緒還是使用多程序,怎麼樣來控制防止執行緒太多,導致執行緒失控,就是請求乙個任務,生成乙個程序,最終導致程序暴漲,進而無法控制。所以,對於任務數量一直在增加的程式,固定執行緒數量的執行緒池是必要的。一些說明 最佳執行緒數的獲取 對於io密集型模型 usr bin env python3 co...

Python3多執行緒

學習python執行緒 python3 執行緒中常用的兩個模組為 thread threading 推薦使用 thread 模組已被廢棄。使用者可以使用 threading 模組代替。所以,在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...