A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

为实现线程安全,Collections内定义内部类,内部类里定义了相应集合中的函数
如下
public boolean add(E e)
{
      synchronized (mutex)    // mutexCollections相应内部类的成员变量,充当锁
      {
             returnc.add(e);                    //cCollection对象
      }
}

ArrayList<String> arrayList = new ArrayList<String>();
因为写了内部类,所以Collections.synchronizedList(arrayList);的返回值不可能还是ArrayList
1)List<String> list = Collections.synchronizedList(arrayList);
2)ArrayList<String> list = (ArrayList<String>) Collections.synchronizedList(arrayList);
方式1和方式2 那个能够保证线程安全,还是说都可以?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马