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