作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的需求是:我想在多线程环境中对数百万个的对象执行频繁操作,同时要考虑并发性和可伸缩性,我需要适合此要求的最佳数据结构。
例如 :
public interface CarDetails {
public CopyOnWriteArrayList<Car> getAllCars();
public Car getMostSoldCars(int carModel);
public void addNewCarDetails(Car car);
public void oldCardDetails(Car car);
}
最佳答案
ConcurrentLinkedQueue是免等待的(即无锁且线程不会饿死)并且不执行任何复制
如果要维护集合而不是列表,则可以让多个线程将对象添加到 ConcurrentLinkedQueue ,并让单个线程 poll 队列并将对象添加到未同步的 HashMap ;这可能比使用 ConcurrentHashMap 更为有效。但是,这假定您可以承受要添加的对象与集合中显示的对象之间的微小延迟。
关于java - 在多线程环境中可用于存储数百万个对象的数据结构(可伸缩性和性能)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832079/
3-d 中的点由 (x,y,z) 定义。任意两点 (X,Y,Z) 和 (x,y,z) 之间的距离 d 为 d= Sqrt[(X-x)^2 + (Y-y)^2 + (Z-z)^2]。现在一个文件中有一百
我是一名优秀的程序员,十分优秀!