Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282

Ошибка блокировки в QTheard

27.12.2024, 02:09. Показов 651. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте друзья!!!!

Снова обращаюсь к Вам за помощью. Так как наши знаменитые поисковики, опять запутали и без того мою не сильно "Умную голову"
Я учу PyQt6 по книге "Python 3 и PyQt6 разработка приложений", и остановился на теме "Блокировки в Theard". Написав листингe который находиться ниже
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from  PyQt6 import QtCore, QtWidgets
 
class MyThread(QtCore.QThread):
    x = 10          # Атрибут класса
    mutex = QtCore.QMutex() # Блокировщик
    def __init__(self, id, parent=None):
        QtCore.QThread.__init__(self, parent)
        self.id = id
    def run(self):
        self.change_x()
    def change_x(self):
        MyThread.mutex.lock()   # Блокируем
        print("x = ", MyThread.x, "id = ", self.id)
        MyThread.x += 5
        self.sleep(2)
        print("x = ", MyThread.x, "id = ", self.id)
        MyThread += 34
        print("x = ", MyThread.x, "id = ", self.id)
        MyThread.mutex.unlock()
 
class MyWindow(QtWidgets.QPushButton):
    def __init__(self):
        QtWidgets.QPushButton.__init__(self)
        self.setText("Запустить")
        self.thread1 = MyThread(1)
        self.thread2 = MyThread(2)
        self.clicked.connect(self.on_start)
    def on_start(self):
        if not self.thread1.isRunning():self.thread1.start()
        if not self.thread2.isRunning():self.thread2.start()
 
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.setWindowTitle("Использование блокировки")
    window.show()
    sys.exit(app.exec())
, у меня не может определить Class который называется MyTheard() скриншот находиться ниже :

из-за этого выходит ошибка "Process finished with exit code -1073740791 (0xC0000409)"
Пожайлуйста подскажите что я неправильно сделал..... Вроде делал всё как сказано в книге. Но все бесщетно...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2024, 02:09
Ответы с готовыми решениями:

Ошибка исключительной блокировки ИБ
Всем привет!Возникла проблема с обновлением конфигурации.После принятия изменений не смог установить монопольный режим-пишет запущено 4...

Ошибка при блокировки выхода
Пытаюсь заблокировать кнопки выход, но возникает ошибка ((( HWND GetConsoleHwnd(void) { #define MY_BUFSIZE 1024 //...

Ошибка соединения с БД после блокировки экрана
Добрый день. Пишу приложение на RAD delphi. Использую соединение TGPCONNECTION Проблема: Если пользователь блокирует...

3
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
27.12.2024, 09:05
mikkijon,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from PyQt6 import QtCore, QtWidgets
 
 
class MyThread(QtCore.QThread):
    x = 10  # Атрибут класса
    mutex = QtCore.QMutex()  # Блокировщик
 
    def __init__(self, id, parent=None):
        QtCore.QThread.__init__(self, parent)
        self.id = id
 
    def run(self):
        self.change_x()
 
    def change_x(self):
        self.mutex.lock()  # Блокируем
        print("x = ", self.x, "id = ", self.id)
        self.x += 5
        self.sleep(2)
        print("x = ", self.x, "id = ", self.id)
        self.x += 34
        print("x = ", self.x, "id = ", self.id)
        self.mutex.unlock()
 
 
class MyWindow(QtWidgets.QPushButton):
    def __init__(self):
        QtWidgets.QPushButton.__init__(self)
        self.setText("Запустить")
        self.thread1 = MyThread(1)
        self.thread2 = MyThread(2)
        self.clicked.connect(self.on_start)
 
    def on_start(self):
        if not self.thread1.isRunning(): self.thread1.start()
        if not self.thread2.isRunning(): self.thread2.start()
 
 
if __name__ == "__main__":
    import sys
 
    app = QtWidgets.QApplication(sys.argv)
    window = MyWindow()
    window.setWindowTitle("Использование блокировки")
    window.show()
    sys.exit(app.exec())
1
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
27.12.2024, 20:03  [ТС]
anton78spb, Спасибо за подсказку...
но все равно выходит аварийная остановка.....
Python
1
Process finished with exit code -1073740791 (0xC0000409)
0
 Аватар для mikkijon
1 / 1 / 0
Регистрация: 29.08.2014
Сообщений: 282
29.12.2024, 12:23  [ТС]
Проблема решена
Нужно было просто переписать код...
Благодарю всех за помощь и всех с новым годом!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.12.2024, 12:23
Помогаю со студенческими работами здесь

Ошибка соединения с БД после блокировки экрана
Добрый день. Пишу приложение на RAD delphi. Использую соединение TGPCONNECTION Проблема: Если пользователь блокирует...

СМА AEG 6000 щелкает замок блокировки ошибка E 42
Заменил замок на новый, ошибка не ушла. Тэн исправен. В чем может еще быть причина?

Nexus 5 на Lollipop, ошибка при блокировки/разблокировки экрана
Последнее время смарт мой постоянно выдает ошибку при нажатии кнопки блокировки экрана, с начало происходит краткосрочное вибро, через...

Блокировка документа тем же компьютером, на котором возникает ошибка блокировки
Здравствуйте, подскажите, пожалуйста: при проведении док. "Принятие на работу организаций" выдает ошибку "Не удалось...

Блокировки
Блокировки.Оптимистические и пессимистические. Подскажите где можно почитать по данной теме?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru