gpt4 book ai didi

java - 同步方法还是整个队列?

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:07 25 4
gpt4 key购买 nike

如果一个队列要被多个线程访问,但它目前只被一个方法 getNextInQueue() 修改,那么同步访问队列的最合适的形式是什么?

目前,我将队列声明为 ConcurrentLinkedQueue,但我不想陷入多个线程等待释放锁的死锁。另一种处理方法是不同步队列,而是同步 getNextInQueue()。但是,由于将来会使用此代码,因此我认为这也不会扩展。 (每个对队列进行修改的程序员都必须确保她同步操作。)

想法?

最佳答案

我认为最简单、最正确的方法是使用ConcurrentLinkedQueue。但是,我认为这不会导致僵局。然而,我不确定的一件事是并发包装器如何处理您使用迭代器的情况。我似乎记得不得不回退到旧的 synchronized 方法来包装对底层集合的所有调用(读取和写入)。不过,我很确定这就是 Concurrent 包装器正在做的事情。

关于java - 同步方法还是整个队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11423473/

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