java线程执行的两种情况

美女程序员鼓励师

1、如果队列已经满了,执行put操作的新线程将被添加到notFull的条件队列中等待。

2、队列未满,当有线程执行移除队列元素的操作时,移除成功并唤醒put线程。

实例

    public E take() throws InterruptedException {

        final ReentrantLock lock = this.lock;

        lock.lockInterruptibly();

        try {

            // 队列长度为0

            while (count == 0)

                // 阻塞

                notEmpty.await();

            // 如果队列有元素执行删除操作

            return dequeue();

        } finally {

            lock.unlock();

        }

    }

/** Condition for waiting takes */

    private final Condition notEmpty;

以上就是java线程执行的两种情况,希望对大家有所帮助。更多Java学习指路:Java基础

以上是 java线程执行的两种情况 的全部内容, 来源链接: utcz.com/z/546396.html

回到顶部