2个线程共享同一流

时间:2018-11-23 12:36:49

标签: python-3.x multithreading pyqt5 qthread

我正在使用python3和pyqt5。 在我的GUI主线程旁边,我有一个线程从相机开始流式传输。 我还创建了两个线程来读取此流,第一个用于显示,另一个用于处理。 因此,这两个线程在流线程中将相同的函数调用到从相机获取的共享帧。

这是我的代码:

class StreamThread(QThread):
    def __init__(self, src=None):
        QThread.__init__(self)
        self.stream = cv2.VideoCapture(src)
        _, self.frame = self.stream.read()

    def run(self):
        while True:
            _, self.frame = self.stream.read()

    def read(self):
        return self.frame


class ShowThread(QThread):
    def __init__(stream):
        QThread.__init__(self)
        self.stream = stream

    def run(self):
        while True:
            frame = self.stream.read()
            ...
            # send frame to the gui
            ...


class AnalyzeThread(QThread):
    def __init__(stream):
        QThread.__init__(self)
        self.stream = stream

    def run(self):
        while True:
            frame = self.stream.read()
            ...
            # do processing
            ...

我将流线程传递给其他线程。 我的问题:这是一个好方法,以及如何在两个线程之间进行同步。 预先感谢

0 个答案:

没有答案