我希望从资源利用的角度提高我的应用程序效率,并希望得到您的输入以帮助我。
此应用程序连接到许多数据库。在每个数据库上,它运行一个查询,将一堆记录带到内存中并执行一些操作。
我正在使用Executors.newFixedThreadPool(n)
来生成多个线程,每个线程都处理与db相对应的任务。但是,根据在给定时间点处理的dbs获取的记录数,内存占用量会波动。
在理想情况下,如果可用内存低于阈值,我本来想减少我的线程池大小(在当前设置中不支持)。调度程序可以基本上推迟接收下一个任务,直到我们有足够的可用内存。
我的问题是这样的智能调度逻辑是否已经可用于我可以使用或需要从头开始构建它?
感谢。