方法1,基于更新时间戳(版本)
两类值,index上的值和 global的值,每个index和glabal值都维护更新时间戳
get(index)的时候,如果global值的时间大于index上的时间,取global的值,否则取index上的值
方法2 exclude list (hash set)
setAll的时候 对global赋值,同时清空exclude list
之后如果有set(index) 加到exclude list
get(index)的时候
如果全局值为null,没啥好说的,取index上的值
否则,看index是否在exclude list里 如果在,取index上的,否则取global值