小编Shr*_*ari的帖子

有序列表和类线程安全

我有一个课程:

  • 2个字段包含按时间排序的列表(list1,list2).
  • 3个只读方法,它们迭代上面的列表以生成汇总统计信息.
  • 1个变异方法,它在list1中查找给定'new-item'的匹配项.如果未找到匹配项,则会将"new-item"添加到list1.如果找到匹配,则从list1中删除匹配,并将match和'new-item'添加到list2.

让我们假设所有方法的多个并发调用是可能的.我需要在最大化性能的同时实现线程安全.

Approach1(极慢) - 将字段类型声明为ArrayList并在所有方法上使用synchronize关键字.

Approach2 - 将字段类型声明为CopyOnWriteArrayList并同步变异方法.

问题

  1. Approach2是否确保线程安全?
  2. 还有更好的选择吗?

java multithreading java.util.concurrent

6
推荐指数
1
解决办法
69
查看次数

浮动作为地图中的关键

鉴于对的集合{Price, Quantity},我需要以相同的价格汇总所有数量.实现它的最简单方法是什么?

一个肮脏的,将使用Hashmap密钥实现解决方案,价格和价值是聚合数量.但是,据我所知,Float这不是一个安全的关键Hashmap.所以这个解决方案很容易出错.

什么是解决这个问题的推荐替代方案?

java

5
推荐指数
1
解决办法
490
查看次数