Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 14, 2011 23:46:56

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Вилимо я чегото не понимаю в связи потока и сборщика мусора

class Thread(QThread):
def run(self):
print('Hallo')
self.terminate()

def some():
T = Thread()
T.start()
if __name__ == '__main__':
some()
pass
вываливается с ошибкой
alex@alex-laptop:/media/Files/SkyNet/eclipse/src/test$ python thread.py
QThread: Destroyed while thread is still running
Ошибка сегментирования

тоесть сборщик удалил поток T когда завершилась функция some() ну а поток на это дело ругается.
Как предотвратить подобное. Просто планируется вызывать поток внутри функций, которые будут сразу завершатся, как только создадут поток. И больше судьба указателя переменной потока меня не волнует, но важно чтоб поток коректно сделал всё что должен был и завершился.



Офлайн

#2 Авг. 15, 2011 00:29:12

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Вилимо я чегото не понимаю в связи потока и сборщика мусора

А зачем вызывать метод terminate? Поток сам завершится, как только код внутри run будет выполнен.
Ошибка как раз и возникает из-за того, что поток пытается покончить жизнь самоубийством )



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version