Как правильно использовать QMutex с QThread?Python

Программы на Python
Ответить
Anonymous
 Как правильно использовать QMutex с QThread?

Сообщение Anonymous »

Код: Выделить всё

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

import time
import sys
import numpy as np

class Mainthread(QThread):

def __init__(self, parent):
super().__init__(parent)
self.parent = parent
self.running = None
self.mutex = QMutex()

def run(self):

while self.running:
self.mutex.lock()
print ("test")
time.sleep(1)

self.mutex.unlock()

class MainWindow(QMainWindow):

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

self.mainthread = Mainthread(self)
self.mainthread.running = True
self.mainthread.start()

self.mainthread1 = Mainthread(self)
self.mainthread1.running = True
self.mainthread1.start()

app = QApplication(sys.argv)
mainwindow = MainWindow()
mainwindow.show()
app.exec_()
У меня есть код, в котором я запускаю два экземпляра одного и того же класса MainThread.
Я ожидал именно этого основного потока
сообщение code> (которое является «тестовым») будет напечатано, затем подождите секунду, а затем будет напечатано сообщение mainthread1. Вместо этого кажется, что оба потока выполняются одновременно. Я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/752 ... th-qthread
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»