Collections.synchronizedList 初次使用

项目中为了在多线程同时去访问List中的数据时,避免不同步出错而使用了Collections.synchronizedList ,如

mList=Collections.synchronizedList(new ArrayList(8));

在Android全局类中包含了此列表,在其他线程中清空了列表,所以在使用时总是为null,脑袋秀逗忘记了这个用法的基本作用,现将Collections.synchronizedList用法总结一下,备忘

如果多个线程同时访问一个ArrayList实例,而其中至少一个线程从结构上修改了列表,那么它就必须保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;仅仅设置元素的值不是结构上的修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用Collections.synchronizedList方法将该列表“包装”起来。这最好在创建时完成,以防止意外对列表进行不同步的访问

返回由指定列表支持的同步(线程安全的)列表。为了保证按顺序访问,必须通过返回的列表完成对底层列表的所有访问。

 

(未完)

你可能感兴趣的:(Java&Android)