Advertisement

实践实现阻塞队列——ReentrantLock使用总结

阅读量:

背景

近日偶然接触到一个面试题目,要求完成一个阻塞队列的实现,这让我产生了亲自尝试的念头。乍看之下似乎并不复杂,整体思路也较为明确,主要依赖于ReentantLock与Condition这两个组件来达成目标。然而在具体实施过程中仍遇到了一些困难,现将相关经验进行整理,供读者参考。

阻塞队列第一版

  • 首先提供第一版的代码实现。由于该代码仅用于内部存储,为便于操作,选择采用LinkedList进行实现。
复制代码
    import java.util.LinkedList;
    import java.util.concurrent.locks.Condition;
    import java.util.concurrent.locks.ReentrantLock;
    
    /** * NOTE:
     * * @author lizhiyang
     * @Date 2019-11-27 19:38
     */
    public class MyBlockingQueue<E> {
    private LinkedList<E> list = new LinkedList<>();
    
    private ReentrantLock lock = new ReentrantLock();
    priv

全部评论 (0)

还没有任何评论哟~