调试python的“错误:无法启动新线程”

时间:2011-06-30 15:13:47

标签: python multithreading exception timer

我很少收到以下错误:

Exception in thread Thread-1240:
Traceback (most recent call last):
  File "C:\Python26\lib\threading.py", line 534, in __bootstrap_inner
    self.run()
  File "C:\Python26\lib\threading.py", line 738, in run
    self.function(*self.args, **self.kwargs)
  File "C:\Users\MyUser\Documents\MyProject\a_script.py", line 33, in some_func
    t.start()
  File "C:\Python26\lib\threading.py", line 476, in start
    _start_new_thread(self.__bootstrap, ())
error: can't start new thread

here收集我收到了与在同一进程中拥有太多线程相关的资源限制。 t.start()(上面的第33行)启动了一个Timer object,它确实打开了一个新的线程,但是,我的架构是这样的,不应该只有几个定时器同时存在。

由于这是一个罕见的事件,我不知道如何重新创建它,我想设置它,以便下次它发生时我将拥有我需要的所有信息。这似乎不是常规的Python异常(没有指定异常类型......)。是try-except它可能吗?是否有其他方法可以捕捉try-catch以外的情况?

1 个答案:

答案 0 :(得分:4)

一个正常的异常,实际上它是thread.error(“thread”是执行所有低级东西的模块)。它在“threading”模块中别名为ThreadError,因此只捕获threading.ThreadError。