Форум сайта python.su
Играюсь с потоками и встретился с таким моментом что исключения не выводятся в потоках, то есть тред просто помирает в тишине и не понятно из за чего
Проверять каждую строку print'ом или assert'ом мне кажется не вариант, есть ли какой то способ понять в чем трабл
Офлайн
568
где код?
Офлайн
Методом подбора удалось определить что для requests.get был необходим Lock():
В коде использовано 100 потоков с запуском функции, часть кода которой ниже:
lock = threading.Lock() def req(q): while not q.empty(): with lock: try: r = requests.get('some_url', timeout=5) except Exception: continue
Отредактировано Xion (Янв. 19, 2016 10:09:12)
Офлайн
0
Можно записями в лог дебажить. Естественно, у каждой записи должен быть проставлен идентификатор потока, чтобы по логу потом можно было понять где и что происходит.
PyCharm вроде поддерживает отладку потоков.
Офлайн
20
XionА если try - except убрать?
Методом подбора удалось определить что для requests.get был необходим Lock():В коде использовано 100 потоков с запуском функции, часть кода которой ниже:
Офлайн