我有一个python程序,可以打开一个套接字并提取ssl证书。它很好用,但是当我在某个IP范围内运行它时,程序不会通过线程140进行处理。有没有办法查看为什么它没有进行处理?
这是程序的线程部分
createdThreads = 0
threadSplit = len(self.IP_list) / 5
#Splitting the work up between the threads
thread_1_list = self.IP_list[0:threadSplit]
thread_2_list = self.IP_list[threadSplit:(threadSplit*2)]
thread_3_list = self.IP_list[(threadSplit*2):(threadSplit*3)]
thread_4_list = self.IP_list[(threadSplit*3):(threadSplit*4)]
thread_5_list = self.IP_list[(threadSplit*4):(threadSplit*5)]`
thread_6_list = self.IP_list[(threadSplit*5):]
threadList = []
for address in range(threadSplit):
thread_1 = getCertInfo(thread_1_list[address],self)
thread_2 = getCertInfo(thread_2_list[address],self)
thread_3 = getCertInfo(thread_3_list[address],self)
thread_4 = getCertInfo(thread_4_list[address],self)
thread_5 = getCertInfo(thread_5_list[address],self)
thread_1.start()
thread_2.start()
thread_3.start()
thread_4.start()
thread_5.start()
thread_1.join()
thread_2.join()
thread_3.join()
thread_4.join()
thread_5.join()
if address == threadSplit-1:
for address in range(len(thread_6_list)):
thread_6 = getCertInfo(thread_6_list[address],self)
thread_6.start()
thread_6.join()
我不知道为什么它不起作用,但是我编写了一个模块,可以在文件的开头导入该模块:
import hanging_threads # https://gist.github.com/niccokunzmann/6038331
它将显示线程挂起的位置,您可以进一步调试。
问题内容: 我正在尝试的代码 我们如何根据其ID暂停/暂停线程?Thread.suspend已过时,必须有一些替代方法来实现。我有线程ID,我想挂起并杀死线程。 编辑:我用这个。 但是我无法停止该线程。 问题答案: 这些天杀死线程的正确方法就是使用它。这集真和原因,以及一些其他的方法来扔。 在线程代码内部,您应该执行类似以下的操作,检查以确保它没有被中断。 这是一个如何在线程内部处理中断异常的示例
当为
问题内容: 我有一个运行时间较长的python应用程序,它将定期(每30-60秒)打开一个包含selenium和chrome驱动程序的网页,运行一些javascript并截图。它在Xvfb中带有chrome的EC2 ubuntu实例上运行,并且在大多数情况下一切正常,除非程序会间歇性地挂起。它发生在以下行之一: (我没有确切的一行,但我从调试语句中知道,它位于此处之间的某处) 不幸的是,该程序不会
问题内容: 我尝试完成的任务是流式处理ruby文件并打印输出。(注意:我不想一次打印出所有内容) main.py puts “hello” 问题 流文件工作正常。打招呼/再见输出将延迟2秒打印。就像脚本应该工作一样。问题是readline()最终挂起并且永不退出。我从来没有达到最后的打印。 我知道这里有很多类似的问题,但是这些都不是让我解决问题的方法。我并不是整个子流程中的人,所以请给我一个更实际
问题内容: 我有一个Python程序,当我使用退出应用程序时 ,脚本不会关闭。我的过程仍显示在运行的过程中。 为什么python线程不能关闭? 问题答案: 您需要将该线程设为守护程序线程。为此,请在调用线程的init之后添加以下行 当只有守护程序线程处于活动状态时,程序将退出,主线程当然是非守护程序的
问题内容: 我正在尝试编写一个程序,该程序在循环中创建新线程,而不等待它们完成。据我了解,如果我在线程上使用.start(),则我的主循环应继续执行,而另一个线程将关闭并同时执行其工作 但是,一旦我的新线程启动,循环就会阻塞,直到线程完成为止。我是否误解了python中线程的工作方式,还是我正在做一些愚蠢的事情。 这是我用于创建新线程的代码。 谢谢大家 问题答案: 这将调用该函数并将其 结果 传递