首页 > 解决方案 > 由于内存不足,带有多线程的 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()

标签: python-3.x

解决方案


你有线程创建线程???和 200 个线程,每个线程创建 300 个线程,总共 60,000 个线程?

我认为任何机器都可能会在尝试执行此操作时耗尽内存。

您的代码没有内存泄漏,并且没有任何“错误”,只是您尝试做的只是完全错误。

所以也许你应该解释一下你想要达到的目标和原因的背景。


推荐阅读