【问题标题】:How does class Collections turn a list/set to a synchronized object? Through what mechanism?类集合如何将列表/集合转换为同步对象?通过什么机制?
【发布时间】:2015-04-28 12:09:10
【问题描述】:

所以我知道如何调用 Collections 类中的静态方法来使之前创建的列表变得同步。但我想知道,如何实现这一目标?

我知道有 2 种方法可以使对象同步(同步方法和块),但 Collections 的做法似乎并非如此,它将“现有”对象转换为同步对象。有任何想法吗?

【问题讨论】:

标签: java collections synchronized


【解决方案1】:

Collections.synchronizedList() 不返回原始列表。它返回一个新的 List 实例,它包装了原始列表并将所有 List 方法委托给它,即代理。

这个代理有方法如

@Override
public synchronized T get(int index) {
    return originalList.get(index);
}

源代码可用,并随 JDK 一起提供。看看就好。

【讨论】:

    猜你喜欢
    • 2016-07-14
    • 1970-01-01
    • 2013-12-16
    • 2015-09-24
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2010-10-09
    • 2019-08-17
    相关资源
    最近更新 更多