python 多執行緒程式設計

2021-05-22 04:29:20 字數 1150 閱讀 7192

一)執行緒基礎

1、建立執行緒:

thread模組提供了start_new_thread函式,用以建立執行緒。start_new_thread函式成功建立後還可以對其進行操作。

其函式原型:

start_new_thread(function,atgs[,kwargs])

其引數含義如下:

args:元組形式的引數列表。

kwargs: 可選引數,以字典的形式指定引數

方法一:通過使用thread模組中的函式建立新執行緒。

方法二:通過繼承threading.thread建立執行緒

二)thread物件中的常用方法:

1、isalive方法:

2、join方法:

原型:join([timeout]) 

timeout: 可選引數,執行緒執行的最長時間

3、執行緒名:

4、setdaemon方法

在指令碼執行的過程中有乙個主線程,如果主線程又建立了乙個子執行緒,那麼當主線程退出時,會檢驗子執行緒是否完成。如果子執行緒未完成,則主線程會在等待子執行緒完成後退出。

當需要主線程退出時,不管子執行緒是否完成都隨主線程退出,則可以使用thread物件的setdaemon方法來設定。

三)執行緒同步

1.簡單的執行緒同步

使用thread物件的lock和rlock可以實現簡單的執行緒同步。對於如果需要每次只有乙個執行緒操作的資料,可以將操作過程放在acquire方法和release方法之間。如:

2、使用條件變數保持執行緒同步。

python的condition物件提供了對複製執行緒同步的支援。使用condition物件可以在某些事件觸發後才處理資料。condition物件除了具有acquire方法和release的方法外,還有wait方法、notify方法、notifyall方法等用於條件處理。

執行緒間通訊:

event物件用於執行緒間的相互通訊。他提供了設定訊號、清除信巨集、等待等用於實現執行緒間的通訊。

1、設定訊號。event物件使用了set()方法後,isset()方法返回真。

2、清除訊號。使用event物件的clear()方法後,isset()方法返回為假。

3、等待。當event物件的內部訊號標誌為假時,則wait()方法一直等到其為真時才返回。還可以向wait傳遞引數,設定最長的等待時間。

python 多執行緒程式設計

一 執行緒基礎 1 建立執行緒 thread模組提供了start new thread函式,用以建立執行緒。start new thread函式成功建立後還能夠對其進行操作。其函式原型 start new thread function,atgs kwargs 其引數含義例如以下 args 元組形式...

Python多執行緒程式設計

import threading import time deffunc name time.sleep 3 print 子執行緒 s 啟動 threading.current thread name print hello name print 子執行緒 s 結束 threading.curren...

python多執行緒程式設計

本文主要學習的執行緒模組是在python3.7版本環境中的threading模組,不涉及另外的乙個執行緒模組 thread。執行緒模組中的屬性和方法 import threading dir threading 下面列表為返回資料 barrier boundedsemaphore brokenbar...