pyqt5 采用多线程,如何采用线程锁,避免操作冲突

在PyQt5中,你可以使用QMutex(互斥锁)来实现线程锁,以避免多个线程同时访问共享资源而引发冲突。下面是一个简单的示例,展示了如何在多线程中使用线程锁:

import sys
from PyQt5.QtCore import QThread, QObject, pyqtSignal, QMutex

class WorkerThread(QThread):
    valueChanged = pyqtSignal(int)

    def __init__(self, mutex):
        super(WorkerThread, self).__init__()
        self.mutex = mutex

    def run(self):
        for i in range(5):
            self.mutex.lock()  # 锁定互斥锁
            self.valueChanged.emit(i)
            self.mutex.unlock()  # 解锁互斥锁
            self.sleep(1)

class MyObject(QObject):
    def __init__(self):
        super(MyObject, self).__init__()
        self.mutex = QMutex()

    def handleValueChange(self, value):
        self.mutex.lock()  # 锁定互斥锁
        print(f"Received value: {value}")
        self.mutex.unlock()  # 解锁互斥锁<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值