Closed windbelike closed 4 years ago
HashMap是线程不安全的,在Web容器高并发环境下会产生线程安全问题,因此把HashMap改为了ConcurrentHashMap。
HashMap是线程不安全的,在Web容器高并发环境下会产生线程安全问题
这句话同意,不过任何方案都得看场景。
在 cicada 这里只可能出现注册 bean 的时候出现并发,但目前是初始化时单线程注册的,所以不会存在线程安全问题。
cicada
bean
https://github.com/TogetherOS/cicada/blob/eb541a121c838dc4e37fd6b8e5450bc183618286/cicada-core/src/main/java/top/crossoverjie/cicada/server/bean/CicadaBeanManager.java#L53
不过考虑到后续支持 bean 懒加载的场景,可以直接改成 ConcurrentHashMap.
ConcurrentHashMap
HashMap是线程不安全的,在Web容器高并发环境下会产生线程安全问题,因此把HashMap改为了ConcurrentHashMap。