微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python中使用线程时如何处理内存不足错误

如何解决在python中使用线程时如何处理内存不足错误

我有内存泄漏,但我找不到解决方法。我认为原因是因为我使用线程并且没有以正确的方式停止/终止它。

我有以下方法

import threading
def worker():
     if nextJobActive() and number_of_active_threads<5:
         t = threading.Thread(target=startThread,args=(my_list,my_item))
         t.start() 

def startThread(): 
    #do something here,which takes ~15 Min.

我在 while(true) 循环中运行 worker() 方法。在我的情况下,我总是必须开始新的线程。但我从不停止线程。我也不知道该怎么做。无论如何,在我的情况下是否可以安全地停止线程?

解决方法

如您所知,您正在创建无限数量的线程,而没有正确停止前一个线程。要等待线程终止,有一个 .join() 方法。以下是 Thread 模块的文档:docs

import threading
def worker():
     if nextJobActive() and number_of_active_threads<5:
         t = threading.Thread(target=startThread,args=(my_list,my_item))
         t.start()
         t.join() 

def startThread(): 
    #do something here,which takes ~15 Min.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。