小编Joh*_*ugh的帖子

从IO :: File获取异常?

与直接使用perl的内置IO函数相比,IO :: File,IO :: Socket :: INET模块具有一些优势,例如使用显式语法来刷新句柄.

但是,它们似乎比内置IO功能有一些缺点.例如,据我所知,他们无法与autodie模块结合使用来引发故障异常,因此我发现自己必须编写更多的样板代码来处理故障,而不是使用内置函数.

有没有办法将两个或其他具有组合功能的模块组合在一起?我注意到一些有限用途的IO模块,比如File :: Slurp,允许更灵活的错误处理.

我正在编写模块代码,理想情况下,解决方案应该一直回到perl 5.10.0.

perl exception autodie perl-io

7
推荐指数
1
解决办法
183
查看次数

HashMap.computeIfAbsent在多线程使用下如何失败?

java.util.HashMap 的文档明确指出:“如果多个线程同时访问哈希映射,并且至少有一个线程在结构上修改了映射,则必须进行外部同步”。

但是,请考虑使用映射作为缓存来减少不可变对象创建的用例,其中仅在 HashMap 上调用computeIfAbsent(不删除/驱逐)。你唯一关心的是computeIfAbsent返回一个有效的对象;您不关心computeIfAbsent是否偶尔会产生额外的对象或覆盖现有条目。

可能发生的最坏情况是什么?在我的随意测试中,没有产生任何负面后果。(我会使用 ConcurrentHashMap,但在这个用例中它相对较慢。)

java multithreading hashmap thread-safety

3
推荐指数
1
解决办法
3650
查看次数