`
enjoyj2ee
  • 浏览: 5030 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

未同步hashMap于并发环境cpu巨高

阅读更多

 

 系统中 一小疏漏,使用 LRUMap作缓存,其继承至abstractHashMap, 因hashmap isn't thead-safe.

并发量大时, 导致客户一系统全部hung住. 只能重启. 

后查was也发生过类似问题. 

  WebSphere Portal 6.1 and 7 is running on WebSphere Application Server 7 which is based on Java 6. The Java 6 HashMap which is not thread-safe is less tolerant to concurrent access under load. This causes the threads accessing the HashMap concurrently to hang and the WebSphere Portal process to incur a higher than normal CPU usage. In Many Cases the hung threads can lead to near 100% CPU usage by the WebSphere Portal process.

 

http://www-01.ibm.com/support/docview.wss?uid=swg21427374

 

分享到:
评论

相关推荐

    HashMap导致CPU100% 的分析

    HashMap导致CPU100% 的分析

    hashmap面试题_hashmap_

    HashMap非线程安全,适合于单线程环境或已经通过并发工具类控制并发的场景。 二、HashMap底层原理 HashMap的内部实现基于数组+链表/红黑树的结构。数组中的每个元素都是一个Entry对象,每个Entry包含键值对和指向下...

    java的hashMap多线程并发情况下扩容产生的死锁问题解决.docx

    在Java的HashMap中,多线程并发环境下的扩容操作可能会引发死锁问题。这主要发生在JDK 1.7版本,因为其扩容机制采用了头插法。以下详细解释这个问题及其解决方案。 首先,HashMap的扩容机制是在容量达到阈值时触发...

    关于如何解决HashMap线程安全问题的介绍

    1. 多线程环境下并发修改:在多线程环境下,如果多个线程同时对HashMap进行读写操作,可能会导致数据的不一致性和数据丢失。例如,当一个线程正在执行put操作时,另一个线程可能同时在进行get或remove操作,这可能...

    高级程序员必会的HashMap的线程安全问题,适用于0~2年的.7z

    然而,对于多线程环境,HashMap并不是线程安全的,这在并发编程中可能会引发一系列问题。本篇将深入探讨HashMap的线程安全问题,并提供相关的解决方案。 首先,我们需要了解HashMap在多线程环境下可能出现的问题: ...

    HASHMAP缓存.txt

    ` 锁对象用于在多线程环境下同步对HashMap的操作,防止并发修改异常。 3. **私有构造函数**:`private DataCache() {}` 这表明`DataCache`类不希望外部直接实例化,而是通过静态方法访问。 4. **获取数据的方法**...

    ArrayList,HashMap

    此外,ArrayList和HashMap在并发环境下需要特别注意。如果不进行同步控制,多线程环境下可能会出现数据不一致的问题。对于并发场景,可以使用CopyOnWriteArrayList(线程安全的ArrayList变体)和ConcurrentHashMap...

    TBB 开源库及并发 Hashmap 的使用

    TBB 开源库及并发 Hashmap 的使用 TBB 开源库是 Intel 公司开发的开源并行计算库,用于在多核平台上进行并行化程序的开发。该库使用标准 C++ 编写,提供了一个灵活的框架来实现数据并行计算。使用 TBB 可以使用户...

    HashMap与HashTable区别

    - **HashMap**: 更适合于性能要求较高且不需要线程安全的场合。如果需要线程安全,可以通过其他手段如`ConcurrentHashMap`等实现。 ### 总结 `HashMap`和`HashTable`各有优势,在选择使用哪种数据结构时,需要根据...

    hashtable和hashmap的区别

    因此,在多线程环境中使用`HashMap`时,如果不采取额外的同步措施,可能会导致数据不一致或其他并发问题。 #### 2. 同步机制 - **Hashtable**: 使用内部同步机制来确保线程安全,这意味着在执行关键操作时会锁定...

    hashMap和hashTable的区别

    - **HashTable**:由于其同步策略,不适用于高并发场景。 9. **迭代器**: - **HashMap**:提供的迭代器是非同步的。 - **HashTable`**:提供的迭代器是同步的。 #### 三、示例代码对比 以下是一些示例代码,...

    并发容器的原理,7大并发容器详解、及使用场景

    对于大量并发写操作,ConcurrentHashMap 由于其无锁设计,通常比同步的 HashMap 更优;而如果需要一个有顺序的并发集合,ConcurrentSkipListMap 或 ConcurrentSkipListSet 可能满足需求;对于需要阻塞操作的队列,...

    Java中HashMap详解(通俗易懂).doc

    - 注意HashMap的并发问题,如果在多线程环境下,使用Collections.synchronizedMap()或使用ConcurrentHashMap来保证线程安全。 总结起来,HashMap和HashSet是Java集合框架的重要组成部分,它们利用哈希技术提供了...

    HashMap和HashTable的区别和不同

    为了在多线程环境中安全地使用`HashMap`,开发者需要自己负责同步,例如使用`Collections.synchronizedMap(new HashMap,V>())`创建线程安全的`HashMap`实例。 #### 2. 允许null值 - **HashTable**: 不支持`null`键...

    Java同步容器和并发容器详解

    Java同步容器和并发容器详解 Java同步容器和并发容器是Java基础类库中使用频率最高的一部分,Java集合包中提供...通过本文,我们可以更好地理解Java同步容器和并发容器的概念和使用场景,从而更好地应用于实际开发中。

    hashmap和hashtable的区别.docx

    - HashMap 未实现同步,这意味着在并发环境中使用需要手动使用 `Collections.synchronizedMap()` 来同步,或者使用 Java 5 引入的 ConcurrentHashMap,它提供了更好的并发性能和扩展性。 - Hashtable 的同步是内置...

    HashMap底层实现原理HashMap与HashTable区别HashMap与HashSet区别.docx

    HashMap是非同步的,意味着在多线程环境中,如果不进行适当的同步控制,可能会导致数据不一致。而HashTable是同步的,因此它在多线程环境下的安全性更高,但这也牺牲了性能。此外,HashMap允许键和值为null,而...

    比较Vector、ArrayList和hashtable hashmap

    HashMap 不是同步的,所以在多线程环境下使用时同样需要同步控制。 Hashtable 类 Hashtable 是 HashMap 的前身,它也是键值对存储的散列表,但它是同步的。和 HashMap 不同的是,Hashtable 不允许 null 键和 null ...

    hashmap 实例

    因此,HashMap 在单线程环境下速度更快。同时,Hashtable 不允许使用 null 作为键或值,而 HashMap 允许。 **ArrayList 和 LinkedList:** ArrayList 内部基于数组实现,适合随机访问,但在中间或开头插入/删除...

Global site tag (gtag.js) - Google Analytics