2 потока поделились тем же потоком - PullRequest
0 голосов
/ 23 ноября 2018

Я использую python3 и pyqt5 .. Помимо основного потока моего графического интерфейса у меня был поток, который начинает потоковую передачу с моей камеры ... Я также создал два потока для чтения из этого потока, первый для показа, а другой для обработки ..Таким образом, 2 потока вызывают одну и ту же функцию в потоке потока для общего кадра, полученного с камеры.

Вот мой код:

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
            ...

Я передал поток потока другим потокам.. мой вопрос: это хороший способ и как синхронизировать между двумя потоками .. Заранее спасибо

...