python线程执行完后释放内存_线程结束后释放内存
我正在开发的应用程序主要是API,但也有一个多线程后台作业处理系统,用于执行计划的作业以及临时API,它们需要很长时间才能获得即时的API响应。
这将通过金枪鱼分叉10次。任何单个分叉的流程都能够接管要运行的作业,因此,在处理流程与API请求的服务之间,是平衡的。
我面临的挑战是,每个进程将如何继续声明作业处理所需的最大内存量。有些作业需要1.5GB-2GB的内存。
如果有足够的时间,最终所有10个进程都必须处理此类工作,并且每个进程都将占用2GB以上的内存。即使该进程的平均内存使用很少超过100MB。
这些密集型作业仅通过流程中的专用线程运行。
是否有任何机制可以强迫Python在线程关闭时释放专门为线程声明的内存?还是任何强制Python进程仅将内存重置为当时需要的通用机制?
旁注:我也正在探索派生而不是线程,但是到目前为止,这还引入了其他不确定的问题。
解决方案
如果没有有关您的API和辅助进程/线程正在做什么的具体示例,则很难提供特定的答案。
Python是一种引用计数语言:当一个对象未被其他任何对象引用时,可以随意进行垃圾回收。可以强制垃圾收集器运行(请参阅https://docs.python.org/3/library/gc.html),但几乎总是最好让它自己做。
当工作线程退出时,线程内创建的任何对象都可能被垃圾回收;唯一的例外是放置在某些全局数据结构中的对象(但是用例听起来并不像您要做的那样)。
python线程执行完后释放内存_线程结束后释放内存相关推荐
- 线程执行完之后会释放吗_java多线程并发:CAS+AQS+HashMap+volatile+ThreadLocal,乐分享...
CyclicBarrier.CountDownLatch.Semaphore 的用法 CountDownLatch(线程计数器 ) CountDownLatch 类位于 java.util.concu ...
- Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行...
Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执行 Semaphore控制同时访问的线程个数countdownlatch等待多个线程执行完本身线程再执 ...
- Java多线程面试题之如何让主线程等子线程执行完之后再执行
问题描述 现在有一个主线程X,和两个子线程A和B,A和B之间没有依赖关系且两者的执行时间不确定,现在要求如下: 1:不限制A和B执行顺序的 2:主线程X需要在子线程A和B执行完成之后再执行 方案1 1 ...
- java进阶 线程池 join用法总结:thread4.join();方法,就表明thread4.join();这个线程受到贵客待遇,直到这个线程执行完,被插入这个方法的载体线程才可以执行。
那个线程调用join 举例 thread4.join();方法,就表明thread4.join();这个线程受到贵客待遇,直到这个线程执行完,被插入这个方法的载体线程才可以执行. package ja ...
- java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
1.[代码]CountDownLatch控制主线程等子线程执行完--Java多线程 package com.sihuatech.common; import java.util.concurrent. ...
- hashmap是线程安全的吗?怎么解决?_线程安全及三种解决方案
线程安全:如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. 线程安全问题都是由全局变量及静 ...
- java线程三种方法,Java基础_线程的使用及创建线程的三种方法
线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...
- python程序执行完后重头开始做烧饼_下塘烧饼 的动态 - SegmentFault 思否
一.背景 java8的垃圾回收器一般推荐的是parNew+CMS,分别针对新生代和老年代的垃圾回收器.实际生产上,有时需要分析GC日志,检查GC回收有没有引起过多的系统暂停,特别是full GC. 二 ...
- python 等待其他线程执行完_面试官:如何让线程顺序执行,join,还有其他办法吗?...
面试官:如让线程顺序执行? 我:使用Thread的join方法. 面试官:除了join还有别的办法吗? 我:目前只用过join. 面试官:哦,那你了解CountDownLatch吗? 我:不了解,没使 ...
- java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题
1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...
最新文章
- JNI传递字符串数组J-StringArray
- LoadRunner性能测试-Std. Deviation标准差
- sympy特点及简单使用
- 镶套iframe 鼠标滚动无效解决办法
- python获取图片某像素点位置_如何在python中获取图像中指定区域内的所有像素坐标?...
- Visual Studio2017 配置OpenGL
- 【安全】Web渗透测试(全流程)
- DNF最新纯图色脚本框架2022-4-27
- 西门子V20变频器Modbus通信的配置和报文
- 免费\无限\开源的网页聊天工具Rocket.Chat安装
- Crontab 每隔整点1小时2小时执行一次任务
- linux控制NVme硬盘点灯,一种实现多NVMe硬盘背板点灯的设计方法与流程
- linux ps4模拟器下载地址,PS4模拟器PC版下载
- java检测自身签名_使用签名检测PDF更改
- 请简述python数据分析流程_简单案例讲解Python数据分析的基本步骤
- 修改计算机桌面壁纸影响计算机考试吗,若何修改调换计算机桌面背景图片
- mysql命令行不支持中文_解决MySQL命令行不支持中文的问题
- vue项目中使用ckplayer.js封装视频播放组件
- 深圳软件测试培训:JavaScript中变量和作用域
- 合并与拆分数据模型(MSDM:Merging Spliting Data Modeling)