gpt4 book ai didi

Java:我们是否应该尽快退出 try-with-resource block 以释放资源?

转载 作者:IT王子 更新时间:2023-10-29 06:09:28 26 4
gpt4 key购买 nike

下面哪个代码片段更好?在处理资源方面更好。

try (Jedis jedis = jedisPool.getResource()) {
String value = jedis.get("key");

// Validation calls using `value` but not using `jedis`
// Another DB call using `value` but not using `jedis`
}

String value;
try (Jedis jedis = jedisPool.getResource()) {
value = jedis.get("key");
}
// Validation calls using `value` but not using `jedis`
// Another DB call using `value` but not using `jedis`

在第一个代码片段中,资源会一直保留到其他不相关的操作完成,而在第二个代码片段中,资源会在使用后立即释放?

最佳答案

一般越早释放资源越好。特别是如果下一个操作很长,例如访问数据库。这样,资源就会被释放,可供程序的其他部分免费使用。

我会考虑保留该资源,仅当它的创建成本很高(例如数据库连接)并且有可能再次需要它时。但是,您似乎正在使用资源池,因此资源创建成本将很少。在典型情况下,唯一的成本是池中的一些锁定,这在正确编写(和大小)的池中并不那么昂贵。

关于Java:我们是否应该尽快退出 try-with-resource block 以释放资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51515492/

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