python-3.x - 由于内存不足,带有多线程的 Python 脚本被杀死
问题描述
我使用线程模块来更快地处理数据。随着时间的推移,内存使用量不断增加,python 程序被杀死。这是重现该问题的简单示例。这段代码有什么问题?发生内存泄漏的地方。谢谢你的帮助。
import threading
import time
def f1():return
def f2():
for i in (1,300):
t = threading.Thread(target=f1)
t.start()
return
def main():
while True:
for i in range(1,200):
t = threading.Thread(target=f2)
t.start()
time.sleep(0.5)
if __name__ == '__main__':
main()
解决方案
你有线程创建线程???和 200 个线程,每个线程创建 300 个线程,总共 60,000 个线程?
我认为任何机器都可能会在尝试执行此操作时耗尽内存。
您的代码没有内存泄漏,并且没有任何“错误”,只是您尝试做的只是完全错误。
所以也许你应该解释一下你想要达到的目标和原因的背景。
推荐阅读
- android - Firebase Config 对于存储敏感数据是否安全?
- java - 如何在不询问他要输入的输入数量的情况下从键盘获取输入
- javascript - JavaScript LHS 和 RHS 查找错误
- mongodb - 使用 MongDB C# 驱动程序连接两个集合的查询中的 NOT IN 过滤器
- c++ - 在 C++ 中使用 IFileDialog 以编程方式预选
- sql - 如何构建查询以合并给定时期内的主明细记录
- linux - 从循环修改全局变量
- javascript - 我的javascript函数确实删除了,但不是我的意思
- javascript - 在没有ajax调用的情况下使用带有@HTML.BeginForm的formdata append
- awk - 在运行时在 awk 脚本中捕获或评估错误的正则表达式字符串