限制python脚本的线程数

限制python脚本的线程数,python,multithreading,resources,runtime,limit,Python,Multithreading,Resources,Runtime,Limit,我在CentOS linux服务器上有一个Python2.7脚本,在我无法登录服务器之前,该脚本在启动新线程时出现了一个错误 有没有办法告诉python运行时不要创建/启动/使用超过50个线程(而是抛出异常或终止脚本)来防止此问题,或者我必须自己在脚本中实现这一点 线程通过线程启动。启动新线程()根据(较新的线程模块),您可以调用模块上的活动线程计数()方法,并了解有多少线程正在运行。现在,我知道您正在使用较低级别的thread模块,因此我通过运行以下命令来查看它: import thread

我在CentOS linux服务器上有一个Python2.7脚本,在我无法登录服务器之前,该脚本在启动新线程时出现了一个错误

有没有办法告诉python运行时不要创建/启动/使用超过50个线程(而是抛出异常或终止脚本)来防止此问题,或者我必须自己在脚本中实现这一点

线程通过
线程启动。启动新线程()

根据(较新的线程模块),您可以调用模块上的
活动线程计数()
方法,并了解有多少线程正在运行。现在,我知道您正在使用较低级别的
thread
模块,因此我通过运行以下命令来查看它:

import thread
dir(thread)
这就产生了一份清单:

['LockType', '__doc__', '__name__', '__package__', '_count', '_local', 'allocate', 'allocate_lock', 'error', 'exit', 'exit_thread', 'get_ident', 'interrupt_main', 'stack_size', 'start_new', 'start_new_thread']
(我之所以展示这一点,是因为它对于找出模块所包含的内容非常有用,特别是在交互式终端中)

您可以看到
thread
模块包含一个
\u count
字段,调用该字段时(例如
thread.\u count()
)应返回正在运行的线程数(您可以检查此值,并在超出最大值时引发异常)


当然,
\u count
前面的下划线表示该方法被处理,有点像私有方法。但是,在Python中,您仍然可以访问它。

没有
多线程
模块,而且
线程
并不老,它是低级的。谢谢。我希望在不改变代码的情况下找到一个适用的解决方案,但只要它能工作,我很高兴。。。