gpt4 book ai didi

Java:同步列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:55 25 4
gpt4 key购买 nike

我有一个 ArrayList 并且我只在同步块(synchronized block)中操作它,我是否也应该使用 Collections.synchronizedList?示例:

List list = Collections.synchronizedList(new ArrayList());    
// versus List list = new ArrayList();
synchronized(list) {
// my code
}

最佳答案

  • 如果您只在 synchronized block 中访问您的列表,则不需要 synchronizedList()

  • 如果您仅使用基本操作(add()remove() 等)访问您的列表,并且这些操作的调用不依赖于彼此(即原子性不是问题),您只能使用 synchronizedList() 而无需显式 synchronized block

  • 如果您希望能够在没有 synchronized block 的情况下调用基本操作,但也有应该是原子的复合操作(包括迭代),您需要 synchronizedList()用于复合操作的 synchornized block

关于Java:同步列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22384757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com