У меня есть куча потоков Python, читающих из очереди, а-ля https://gist.github.com/bsphere/f1e0a7d033dab2871c5c. Я хочу отображать прогресс каждые 10 секунд. Это лучшее, что я нашел до сих пор, есть ли что-нибудь менее многословное и более питоническое?
Редактировать : Извините, я не совсем понял - меня не интересует хороший пользовательский интерфейс, мне просто интересно, как правильно взаимодействовать с потоками без ошибок параллелизма, чтобы записать прогресс из основного потока в ожидании завершения рабочих ..
threads = []
for i in xrange(NUMBER_OF_WORKERS):
t = MyThread()
threads.append(t)
t.start()
live_threads = True
while live_threads:
live_threads = False
for t in threads:
t.join(10)
if t.isAlive():
live_threads = True
break
logger.info("queue size: %s", q.qsize())