• 技术文章 >java >java基础

    java线程执行的两种情况

    小妮浅浅小妮浅浅2021-10-20 10:47:12原创627

    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 线程
    品易云
    上一篇:java队列抛出异常的介绍 下一篇:java读写锁的特性

    相关文章推荐

    • Java基础之如何快捷键生成文档注释?• Java基础中注释添加的位置以及原则详解• Java基础里的@Target是什么?怎么用?• Java基础@Retention如何创建注解?• Java基础之内置注解有哪些?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网