|
|
1
12
正如bkail所说,当gc从
考虑到这一点,可能会出现这样一种情况:在这样一个映射中,您可能会得到一个并发修改,而在另一种映射中,您可能不会得到这种修改——如果您放置了一个已经存在的键,或者调用了一个getter方法。但实际上,在并发应用程序中,无论如何您都应该锁定这些调用,这样您的程序中就会有一个真正的并发访问错误。
在回答你的问题时说的话,你真的
不应使用
稍后,您可以使用带有
编辑
:我重读了你的问题,想解决另一个问题。因为实际修改发生在
|
|
|
2
5
不,您将不会收到ConcurrentModificationException。weakhashmap在调用各种操作时使用referencequeue.poll。换句话说,每个调用者都会默默地负责从映射中清除过时的条目。但是,这意味着从多个线程调用weakhashmap上的方法是不安全的,否则这些线程似乎是“只读的”,因为对get()的任何调用都会破坏另一个线程试图迭代的条目链接列表。 |
|
|
3
0
weakhashmap在键上很弱,而不是值,因此如果希望在不使用值时释放空间,则不适合缓存值。你可能想看看 MapMaker 从 google collections . |
|
|
4
-2
关于这一点,文件并不完全清楚,但它确实说明了这一点:
我认为根据这种描述,你应该偶尔收到
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |