采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好!CopyOnWriteArrayList读操作时为什么还要再进行一次getArray(),直接return array[index]不好吗?
你好,能注意到这里的细节,给你点赞!get()方法直接调用内部的getArray()方法,而getArray()方法则直接返回成员变量array。这里 array指向一个数组,是CopyOnWriteArrayList的内部数据结构:private transient volatile Object[] array;这样设计的重点在于:array是一个volatile变量,其读、写操作具有Happends-Before关系。具体来讲,线程W1通过set()方法“修改”集合后,线程R1能立刻通过get()方法得到array的最新值。
老师,您好! 我认认真真地看完您的每一个字,还是不明白 return get(getArray(),index)和 return array[index]两者的区别。 array是被volatile修饰的,那 return array[index]会和 return get(getArray(),index)哪里不同了
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.1k 15
3.5k 12
1.2k 12