Не работает блокировка мьютекса |
Здравствуйте, гость ( Вход | Регистрация )
Не работает блокировка мьютекса |
empirik |
4.2.2014, 21:29
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 18.3.2012 Пользователь №: 3269 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не могу понять, почему несмотря на mutex.lock(), потоки все равно выполняют один и тот же кусок кода одновременно. Есть диалоговое окно, которое по запросу потока должно появляться и позволять пользователю ввести сообщение. Когда сообщение введено и нажата кнопка "ОК", это сообщение должно быть получено этим самым потоком. Вот код:
При запуске в консоли получается так:
|
|
|
Litkevich Yuriy |
5.2.2014, 16:49
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
я не сильно волоку в питоне, что-то всё таки у меня не укладываются некоторые вещи в голове.
Может всё же мысль была правильной:
ну и как следствие удалить атрибут класса
и использовать вместо атрибута класса: атрибут экземпляра:
|
|
|
empirik |
5.2.2014, 19:02
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 18.3.2012 Пользователь №: 3269 Спасибо сказали: 0 раз(а) Репутация: 0 |
я не сильно волоку в питоне, что-то всё таки у меня не укладываются некоторые вещи в голове. Может всё же мысль была правильной:
ну и как следствие удалить атрибут класса
и использовать вместо атрибута класса: атрибут экземпляра:
Не, если делать так, то мьютекс не будет разделяемым, у каждого потока он будет свой, насколько я понимаю. И тогда каждый что хочет, то и делает. А в данном случае - все потоки обращаются к одному мьютексу. |
|
|
Iron Bug |
6.2.2014, 12:00
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я не программист на питоне, но сдаётся мне, что он у каждого потока создаёт собственный мьютекс и эти разные мьютексы потом лочатся независимо друг от друга.
Сообщение отредактировал Iron Bug - 6.2.2014, 12:00 |
|
|
Текстовая версия | Сейчас: 29.3.2024, 15:02 |