将集合转换为线程安全的对象

将集合转换为线程安全的对象,第1张

将集合转换为线程安全的对象

Collections工具类可以将List接口中线程不安全的工具类转换为线程安全的对象

Collections工具类跟Vector相比,Collections的代码灵活度更好,性能更好

Collections工具类同步代码本质如下

		public E get(int index) {
            synchronized (mutex) {return list.get(index);}
        }
        public E set(int index, E element) {
            synchronized (mutex) {return list.set(index, element);}
        }
        public void add(int index, E element) {
            synchronized (mutex) {list.add(index, element);}
        }
        public E remove(int index) {
            synchronized (mutex) {return list.remove(index);}
        }

举个栗子

private static List list=new ArrayList();

List syncList = Collections.synchronizedList(list);

Collections源码

public static  List synchronizedList(List list) {
    return (list instanceof RandomAccess ?
            new SynchronizedRandomAccessList<>(list) :
            new SynchronizedList<>(list));
}

其它对象转换方法如下

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5660268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存