假设有一个使用Scanner或PrintWriter等资源的ScheduledExecutorService。
让Executor每次执行时重新打开资源会更有效吗,还是更好的做其他事情,比如在资源块的try中包含Executor,这样就可以有效地保留资源在程序运行的整个持续时间内打开?这样做会对CPU造成更大的压力,而不是内容打开和关闭资源吗?
答案是否取决于执行人的频率?
答案 0 :(得分:0)
在完成工作后关闭资源始终是一个好习惯。如果打开和关闭资源是一项代价高昂的操作,则将其管理委派给另一个组件,通常是一个池,它将控制与资源的多个已打开的连接。它的客户端将继续使用相同的API请求打开资源并在完成任务时关闭它。
查看数据库连接池(Apache DBCP或c3p0)及其用途以获取灵感。