Java 中的线程安全队列
2022-09-03 01:09:12
我想实现一个队列,它被多个线程击中。
这是堆栈位于单例类中。
现在,一个简单的解决方案是同步这个?我想它需要这个作为标准吗?但是,我想优先考虑写信给它。
所以,写入是高优先级,读取是低优先级。
这可能吗?
理想情况下,如果可能的话,由多个线程编写而不进行同步会很棒。
我想实现一个队列,它被多个线程击中。
这是堆栈位于单例类中。
现在,一个简单的解决方案是同步这个?我想它需要这个作为标准吗?但是,我想优先考虑写信给它。
所以,写入是高优先级,读取是低优先级。
这可能吗?
理想情况下,如果可能的话,由多个线程编写而不进行同步会很棒。
为什么要避免同步?可以编写“无锁”结构,但它非常棘手,容易出错。
如果我是你,我会使用或(或其他结构之一),让你的生活变得轻松!ArrayBlockingQueue
ConcurrentLinkedQueue
java.util.concurrent
哦,我错过了关于将读取优先于写入的一点。你可以用类来做到这一点。然后,您不需要线程安全队列 - 您只需使用读写锁进行外部锁定,具体取决于您是读取还是写入。ReentrantReadWriteLock