Java 类集合如何将列表/集合转换为同步对象?通过什么机制?
因此,我知道如何在Collections类中调用静态方法来创建一个列表,该列表是以前创建的,现在可以同步了。但我想知道,人们是如何做到这一点的Java 类集合如何将列表/集合转换为同步对象?通过什么机制?,java,collections,synchronized,Java,Collections,Synchronized,因此,我知道如何在Collections类中调用静态方法来创建一个列表,该列表是以前创建的,现在可以同步了。但我想知道,人们是如何做到这一点的 我知道有两种方法可以使对象同步(同步的方法和块),但集合的方式似乎并非如此,它将“现有”对象转换为同步对象。有什么想法吗 集合。synchronizedList()不返回原始列表。它返回一个新的List实例,该实例包装原始List并为所有List方法(即代理)委托给它 此代理具有以下方法: @Override public synchronized T
我知道有两种方法可以使对象同步(同步的方法和块),但集合的方式似乎并非如此,它将“现有”对象转换为同步对象。有什么想法吗
集合。synchronizedList()不返回原始列表。它返回一个新的List实例,该实例包装原始List并为所有List方法(即代理)委托给它
此代理具有以下方法:
@Override
public synchronized T get(int index) {
return originalList.get(index);
}
源代码可用,并随JDK提供。看看吧。源代码在这里。这有点复杂,但您可以很容易地看到它是围绕原始列表实例的包装器类。