Я создал графический скребок (Qt и Python), который работает с несколькими потоками .. графический интерфейс, кажется, висит до тех пор, пока не появятся все нити. Я запускаю скребок с 200-300 нити .. после создания всех потоков GUI отвечает .. есть ли способ остановить приложение от не реагирования при создании потоков.GUI зависает до тех пор, пока не будут созданы все потоки
Я создал новую нить Python в основном потоке, а затем вызовите tempthread внизу код, который находится в классе QThread
def tempthread(self):
self.tempt = threading.Thread(target=self.spawn)
self.tempt.daemon=True
self.tempt.start()
def spawn(self):
global noofthreads
for xd in range(0,noofthreads):
t = threading.Thread(target=self.startscrape)
t.daemon = True
t.start()
tarray.append(t)
t1 = threading.Thread(target=self.waitthreads)
t1.start()
def waitthreads(self)
for t in tarray:
t.join()
self.message.emit("Program Execution Completed")
добавить processevents там каждые 20 нитей –
Плохая идея создать много потоков. Реальных задач не требуется. Желательно создать пул потоков. В идеальном случае количество потоков должно быть равно числу ядер ЦП. –