gpt4 book ai didi

java - java中执行程序服务的范围?

转载 作者:行者123 更新时间:2023-11-29 03:08:50 25 4
gpt4 key购买 nike

<分区>

最近我一直在使用VM 模板将一些内容写入.vm 文件,然后将vm 文件的内容作为.txt 文件存储在我的计算机中。起初,我一直在为每个文件创建过程创建单独的线程,这并不好,因为在短时间内没有大量线程创建。所以我想使用线程池

考虑以下方法

public void runHugeNoOfShortTimeTasks() {
ExecutorService service = Executors.newFixedThreadPool(100);
for(int i=0;i<10000;i++){
service.submit(runnableWriteToVMAndConvertToTXTFile()); // Each process would take around 1-3 seconds
}
}

现在考虑完成 for 循环需要 0.5 秒。如果循环结束,进程将退出 runHugeNoOfShortTimeTasks() 方法。但是 ExecutorService 的范围是在那个方法内,那么队列中的线程和正在处理的线程会发生什么?一旦进程退出 runHugeNoOfShortTimeTasks() 方法,Executor 服务是否会被垃圾回收?

另一件事是,一旦队列中的所有线程都完成(如果它不会被垃圾收集),固定线程池 100 会发生什么。它会一直坐在我的内存中等待线程,还是会在所有线程完成后被销毁?

也许我的理解方式完全错误,如果我错了请澄清我..

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com