Python多线程.释放资源



我正在写超级棒的软件,我将创建一个新的线程每一分钟。该线程将在远程数据库服务器上存储一些数据并结束。当创建一个新线程时,资源(内存…)被分配给该线程。如果我没有正确地释放这些资源,我将有一个问题。

存储数据的线程有时会意外结束,这是由于远程服务器不可达而导致的错误。这不是问题,线程将结束,数据将在下一分钟与下一分钟的数据一起存储。

所以我的问题是:当python线程按预期结束时,是否释放了它们使用的所有资源?当它们因错误而结束时是否释放所有资源?

Python线程(与多处理进程相反)使用相同的内存块。如果线程向数据结构中添加的内容直接或间接被主线程或其他工作线程引用(例如,共享字典或列表),则该数据不会在线程死亡时被删除。因此,基本上,只要线程写入内存的唯一数据是由线程目标函数作用域的本地或以下变量引用的,那么在线程退出后下一次gc运行时,应该清理资源。

最新更新