Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么要重新初始化多进程工作者?_Python_Garbage Collection_Multiprocessing - Fatal编程技术网

Python 为什么要重新初始化多进程工作者?

Python 为什么要重新初始化多进程工作者?,python,garbage-collection,multiprocessing,Python,Garbage Collection,Multiprocessing,我在Python多处理池库文档中发现了以下注释: 池中的工作进程通常为完整的 池的工作队列的持续时间。一种常见于其他领域的模式 系统(如Apache、mod_wsgi等)来释放 workers允许池中的worker只完成一组 退出、清理和重新安装前的工作量 生成进程以替换旧进程。maxtasksperchild参数 将此功能公开给最终用户 它说Apache和其他人重新初始化了多进程实体,这使它成为一个好的模式。是关于重新初始化对象(如“OOP”对象)以调用垃圾收集器吗?为什么它很重要?存在多处理

我在Python多处理池库文档中发现了以下注释:

池中的工作进程通常为完整的 池的工作队列的持续时间。一种常见于其他领域的模式 系统(如Apache、mod_wsgi等)来释放 workers允许池中的worker只完成一组 退出、清理和重新安装前的工作量 生成进程以替换旧进程。maxtasksperchild参数 将此功能公开给最终用户


它说Apache和其他人重新初始化了多进程实体,这使它成为一个好的模式。是关于重新初始化对象(如“OOP”对象)以调用垃圾收集器吗?为什么它很重要?存在多处理对象时无法使用GC

主要用例之一是避免小型泄漏(内存、fd等)影响长时间运行的服务

由于软件不完善,经常会出现一些库没有正确清理的情况。由于这些问题超出了开发人员的控制范围,一个简单的解决方法是定期终止泄漏的进程并重新开始

另一个用例是控制服务的内存消耗。例如,Python内存碎片通常会导致工作人员消耗比需要多得多的内存