关于FastHashMap问题

07-07-30 ineverstop
其实这个问题是关于jarkata Common中Fast容器类在多线程环境下使用的问题。 在FastHashMap.java(其他还有FastArrayList等)的注释文中,作者提到该class使用的两种模式,即slow和fast,分别适用于初始化容器和只读操作,但同时作者还提到:该class不保证在任何平台都能正常使用,因为他可能导致所谓double-check idiom, 即内部的容器可能在未被完全初始化完毕的情况下被后来的线程所获得,即内不状态的不一致情况下会导致UncaughtedException。

但是我们知道,在struts框架中,FastHashMap容器是非常关键的保存Actions的容器,那么上面作者的担心会出现吗?

请教Banq对此问题的解释。

banq
2007-07-31 13:14
会出现,但是只是可能在启动时可能发生,概率比较小。可升级JDK5.0使用新的Hashmap

猜你喜欢