欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實現(xiàn)多線程及線程間通信的簡單方法

 更新時間:2023年07月21日 09:30:43   作者:大眼睛編程  
這篇文章主要為大家介紹了python實現(xiàn)多線程及線程間通信的簡單方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

方法

利用PyQt中的QThread類實現(xiàn)多線程利用,PyQt中的pyqtSignal類實現(xiàn)信息的觸發(fā)和捕獲,即定義事件和訂閱事件

利用QThread類實現(xiàn)多線程的方法

1,新建一個python類,繼承自QThread

from PyQt5.QtCore import QThread
class SubThread(QThread):

2,重寫__init__(),__del__()和run()函數(shù)

from PyQt5.QtCore import QThread
class SubThread(QThread):    
    def __init__(self):        
        super().__init__()        
        # 以下加入需要的代碼  
    def __del__(self):        
        self.wait()  
    def run(self):        
        # 以下加入子線程執(zhí)行的代碼

3,將繼承自QThread類實例化,然后調(diào)用實例對象的start()函數(shù),即可開啟新線程

【重點說明】

QThread的子類的實例,必須放在app = QtWidgets.QApplication(sys.argv)和sys.exit(app.exec_())代碼之間。

if __name__ == '__main__':    
    app = QtWidgets.QApplication(sys.argv)    
    subthread = SubThread()    
    subthread.start()    
    sys.exit(app.exec_())

利用pyqtSignal類實現(xiàn)信息觸發(fā)和捕獲的方法

1,在類內(nèi)頭部定義pyqtSignal屬性,記住,是類級別屬性

from PyQt5.QtCore import QThread, pyqtSignal

class SubThread(QThread):    
    messagetrigger = pyqtSignal(str)   
    
    def __init__(self):        
        super().__init__()        
        # 以下加入需要的代碼   
        
    def __del__(self):        
        self.wait()   

    def run(self):        
        # 以下加入子線程執(zhí)行的代碼

2,在需要觸發(fā)信息的地方使用,調(diào)用pyqtSignal的emit()函數(shù)觸發(fā)消息

import timefrom PyQt5.QtCore 
import QThread, pyqtSignal, QObject

class SubThread(QThread):    
    messagetrigger = pyqtSignal(str) 

    def __init__(self):        
        super().__init__() 

    def __del__(self):        
        self.wait() 

    def run(self):        
        self.messagetrigger.emit('子線程開始')        
        time.sleep(2)        
        self.messagetrigger.emit('子線程結(jié)束')

3,捕獲消息,使用pyqtSignal的connect()連接回調(diào)函數(shù),在回調(diào)函數(shù)內(nèi)處理捕獲到的信息,完整代碼如下:

import sysimport timefrom PyQt5.QtCore 
import QThread, pyqtSignal, QObject
from PyQt5 import QtWidgets

class SubThread(QThread):    
    messagetrigger = pyqtSignal(str)    

    def __init__(self):        
        super().__init__() 

    def __del__(self):        
        self.wait()    

    def run(self):        
        self.messagetrigger.emit('子線程開始')       
        time.sleep(2)        
        self.messagetrigger.emit('子線程結(jié)束')
        
def callback(msg):    
    print(msg)
    
if __name__ == '__main__':    
    app = QtWidgets.QApplication(sys.argv)    
    subthread = SubThread()    
    subthread.messagetrigger.connect(callback)    
    subthread.start()    
    sys.exit(app.exec_())

以上就是python實現(xiàn)多線程及線程間通信的簡單方法的詳細內(nèi)容,更多關(guān)于python多線程線程間通信的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python通過字典映射函數(shù)實現(xiàn)switch

    Python通過字典映射函數(shù)實現(xiàn)switch

    這篇文章主要介紹了Python通過字典映射函數(shù)實現(xiàn)switch,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-11-11
  • Python playwright學(xué)習之自動錄制生成腳本

    Python playwright學(xué)習之自動錄制生成腳本

    playwright 可以支持自動錄制生成腳本,也就是說只需要在頁面上點點點,就可以自動生成對應(yīng)的腳本了。本文就來和大家詳細聊聊實現(xiàn)方法吧
    2023-02-02
  • Python判斷直線和矩形是否相交的方法

    Python判斷直線和矩形是否相交的方法

    這篇文章主要介紹了Python判斷直線和矩形是否相交的方法,涉及Python坐標系下的直線與矩形相關(guān)運算,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法

    python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法

    我相信很多人在學(xué)習Python的時候,特別是在open文件的時候總還碰到,還報錯IOError:[Errno?2]沒有這樣的文件或目錄:'E://aaa.txt',這篇文章主要給大家介紹了關(guān)于python錯誤提示:Errno?2]?No?such?file?or?directory的解決方法,需要的朋友可以參考下
    2022-02-02
  • Python3 讀、寫Excel文件的操作方法

    Python3 讀、寫Excel文件的操作方法

    這篇文章主要介紹了Python3 讀、寫Excel文件的操作方法,需要的朋友可以參考下
    2018-10-10
  • Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼

    Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼

    這篇文章主要介紹了Python基于Socket實現(xiàn)簡易多人聊天室的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-11-11
  • Python源碼解析之List

    Python源碼解析之List

    今天帶大家來復(fù)習Python底層代碼LIST,文中有非常詳細的介紹及代碼示例,對正在學(xué)習python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python爬蟲小練習之爬取并分析騰訊視頻m3u8格式

    Python爬蟲小練習之爬取并分析騰訊視頻m3u8格式

    讀萬卷書不如行萬里路,學(xué)的扎不扎實要通過實戰(zhàn)才能看出來,本篇文章手把手帶你爬下騰訊視頻的m3u8格式來分析,大家可以在過程中查缺補漏,看看自己掌握程度怎么樣
    2021-10-10
  • Python實現(xiàn)隊列的方法

    Python實現(xiàn)隊列的方法

    這篇文章主要介紹了Python實現(xiàn)隊列的方法,實例分析了Python實現(xiàn)隊列的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 一文帶你了解Python中Scikit-learn庫的使用

    一文帶你了解Python中Scikit-learn庫的使用

    Scikit-learn是Python的一個開源機器學(xué)習庫,它支持監(jiān)督和無監(jiān)督學(xué)習,本文主要來深入探討一下Scikit-learn的更高級的特性,感興趣的小伙伴可以了解下
    2023-07-07

最新評論