- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WebAppContext 中有列表和 map 。
大多数情况下,这些只能由多个线程读取,但有时需要更新或添加一些数据。
我想知道在不引起 ConcurrentModificationException 的情况下执行此操作的最佳方法是什么。
我认为使用 CopyOnWriteArrayList我可以在以下方面实现我想要的 - 我不必在每个读取操作上同步 - 我可以在其他线程正在读取列表时安全地更新列表。
这是最好的解决方案吗? map 呢?
最佳答案
使用 CopyOnWriteArrayList 时要小心。典型的集合(在非常广泛的范围内)是 80% 读取 19% 写入和 1% 删除。 CopyOnWriteArraylist 在这些条件下表现不佳。 CopyOnWriteArrayList 的最佳用途是读取约 90-95% 时。写太多会降低性能(该类在调用 compareTo 时会抛出 UnsupportedOperationException 因为它上的 Collections.sort 很糟糕)。
基本上,如果您进行大量读取而很少写入,则 CopyOnWriteArrayList 非常棒,但如果不是,您可以考虑 Collections.synchronizedList。如果您想确保非阻塞读取,那么显然 CopyOnWriteArrayList 适合。
ConcurrentHashMap 非常适合替代您拥有的任何 map 实现(至少未排序)。它不会在读取时阻塞,并且只在写入时阻塞特定的桶,所以速度非常快。
关于java - 网络应用程序 : safetly update a shared List/Map in the AppContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070708/
AppContext 似乎只有一个名为 BaseDirectory 的属性。但是 Environment 类似乎有更多的属性和方法。 那么 AppContext 现在是否被 Environment 类
我在一个 github project 中找到了类: public class AppContext { private static Context sContext; privat
根据官方指南,我目前正在努力研究 android 平台的架构组件: 在我的应用程序中,我目前需要存储一个字符串列表(名称)并在多个位置( Activity 和服务)访问它。我想到了 2 种可能的方法:
是否可以使用对 getApplicationContext() 的引用从后台线程引发 AlertDialog? 我正在尝试使用该代码,但它不起作用 new Thread(){
我附上了我的 JDK 附带的 src.zip,但它似乎缺少一些文件。 就好像我没有任何 sun.*; 包一样。如果它们可能因 java.awt.AppContext 而改变,我会理解,但这不会退出。
我有一个grails应用程序,该应用程序使用appContext.xml定义bean。当我运行该应用程序时,一切都正常。但是,当我尝试使用@ContextConfiguration运行单元测试时,所有
我有两个同名、同类的 bean。我想模拟其中一个(模拟不是通过@Mock注释完成的,而是由于某种原因在Spring文件中完成的),而另一个则保持正常(用于集成测试)。 我能想到的一种方法是更改 @
在 Play 1.x 应用程序中,我想创建一个名为 AppContext 的类,它将作为应用程序中服务之间的粘合层。它可以作为一个简单的依赖注入(inject)器,但我也希望它能够控制事件的工作流,从
我在 Eclipse 中创建了一个小 bean 类。它在 NetBeans 中工作,但在 Eclipse 中它说 Resource leak: 'appContext' is never closed
我的团队正在分析我们的 Swing 应用程序,以确保在不再使用时对所有内容进行垃圾回收。我们遇到了一个奇怪的问题。 我们只是打开一个新窗口 (JFrame) 然后关闭它。此框架包含一个 EmptyPa
我正在开发 ASP.NET Core 3.1 Web API并拥有我的 swagger设置。我已将 swagger 文档添加到我的项目中。 右键单击 API Project -> Build -> O
我有一个 Spring ApplicationContext,我在其中声明 Jetty 服务器 bean 并启动它。在 Jetty 内部,我有一个 DispatcherServlet 和几个 Cont
我正在尝试使用 Spring 创建 REST Web 服务。 我有一个 Controller ,一个 appContext。 Controller : @Controller public class
有什么方法可以在不直接使用 Spring Context 的情况下加载标有 @ConfigurationProperties 的类?基本上我想重用 Spring 所做的所有智能逻辑,但对于我在 Spr
我的 WebAppContext 中有列表和 map 。 大多数情况下,这些只能由多个线程读取,但有时需要更新或添加一些数据。 我想知道在不引起 ConcurrentModificationExcep
我在使用最简单的 maven-spring 应用程序时遇到了一些困难。实际上,BeanFactory 找不到 appContext.xml 文件,尽管它位于资源目录中并正确复制到目标目录中。这是我
我将旧的打印机 API 代码迁移到 Java 8,并出现以下警告: Access restriction: The method 'AppContext.getAppContext()' is not
我有 2 个基于 spring 的 jar 文件——parent.jar 和 child.jar。 parent.jar 有一个parent_applicationContext.xml 和一个属性文
如何在 Spring MVC applicationContext.xml 中配置 mongo 集群详细信息(它使用两个服务器)? 数据库.属性 mongo.db.host=server1 mong
当我在嵌入式 Tomcat 上启动 Spring Boot 应用程序并且在启动过程中出现某些问题时(例如没有连接到 DB 或 Liquibase 更新失败或发现循环依赖等),Tomcat 继续监听 8
我是一名优秀的程序员,十分优秀!