Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Java使用ScheduledExecutorService中的资源_Java_Resources - Fatal编程技术网

Java使用ScheduledExecutorService中的资源

Java使用ScheduledExecutorService中的资源,java,resources,Java,Resources,假设有一个ScheduledExecutorService,它使用诸如扫描仪或PrintWriter之类的资源 让执行器在每次执行时重新打开资源会更有效吗?还是做一些其他事情会更好,比如将执行器放在try-with-resources块中,这样可以有效地让资源在程序运行的整个过程中保持打开状态?这样做会比满足地打开和关闭资源对CPU造成更大的负担吗 答案是否取决于执行者的频率?在完成工作后关闭资源始终是一种良好的做法。如果打开和关闭资源是一项成本高昂的操作,则将其管理委托给另一个组件(通常是池)

假设有一个ScheduledExecutorService,它使用诸如扫描仪或PrintWriter之类的资源

让执行器在每次执行时重新打开资源会更有效吗?还是做一些其他事情会更好,比如将执行器放在try-with-resources块中,这样可以有效地让资源在程序运行的整个过程中保持打开状态?这样做会比满足地打开和关闭资源对CPU造成更大的负担吗


答案是否取决于执行者的频率?

在完成工作后关闭资源始终是一种良好的做法。如果打开和关闭资源是一项成本高昂的操作,则将其管理委托给另一个组件(通常是池),该组件将控制到资源的许多打开的连接。它的客户端将继续使用相同的API,请求打开资源并在完成任务后关闭

请看一看数据库连接池(or)及其用法,以获得灵感