
java并发(多线程基础)
有激情无鸭梨
你为社会创造的价值越大,你的价值也越大,崇尚开源,崇尚技术
展开
-
并发(多线程)------>wait/notify的深度理解+实例生产者消费者,实现ArrayList的线程全
前言:先说一个坑了我大半天的教训啊,不同的线程之间企图用notify和wait来配合,这就大错特错了!!!下面我们来理解思考一下因为wait nofity都是native方法 源码观看的意义不大,所以要好好看注释源码中这个注释一语道破天机!! 就是我们谁wait()了 就要谁来notify来激活 而我们前言中说的那个错误分别是在两个线程中的,所以。。。。是不能够互相wait() notify的看似这个解释和小错误简单,实则不好好看源码的注释也很懵,贴在这里防止大家走弯路下面用...原创 2020-10-02 12:46:56 · 241 阅读 · 0 评论 -
并发(多线程)------>全网最明白的java线程六大状态、锁机制、深度理解wait join的方法(可以直接最后结论,也可以复制代码自己验证)
前言:java中有6大状态来分别表示线程的运行情况,从源码中的注释和实例解释如下NEW 线程创建没有执行 start()方法 RUNNABLE 线程执行start()方法进入该状态 WAITING 线程调用wait() wait(x) join() join(x)方法都会进入此状态 但是wait() join()的调用在线程表现上是不同的(后面举例说明) join是暂时等待的从源码可以看出来 waiting状态时不占用CPU的 BLOCKED 等待监视器...原创 2020-10-02 12:33:12 · 199 阅读 · 0 评论 -
并发(多线程)------>BlockingQueue接口源码解读与实现类ArrayBlockingQueue实现类(生产者消费者)
前言:* A {@link java.util.Queue} that additionally supports operations* that wait for the queue to become non-empty when retrieving an* element, and wait for space to become available in the queue when* storing an element.归纳:是一个支持 取元素时 等待队列非空 存元素时 等.原创 2020-09-30 19:56:53 · 237 阅读 · 0 评论 -
并发(多线程)------>ReentrantLock(下)深层次解读与Condition配合的实例
深层次解读:(重点从下面第五行开始,我怕你们看了前几行看不下去)ReentrantLock实现了Lock接口和组合Condition接口的实现类ConditionObject ConditionObject类是在AQS中实现的ReentrantLock中的lock unlock方法是 它内部抽象类定义的而ReentrantLock是非公平的,也可以是公平的,lock与unlock如何知道什么时候采用公平的锁策略,什么时候采用非公平的锁策略呢在源码中可以学到这个核心的思想,我把它称为高级...原创 2020-09-29 16:57:24 · 165 阅读 · 0 评论 -
并发(多线程)------>ReentrantLock(上)初步解读与实例
前言:ReentrantLock 从英文上来看 re+entrant+Lock 说明他是一个可重入锁(文末解释)。源码中的注释如下:* A reentrant mutual exclusion {@link Lock} with the same basic* behavior and semantics as the implicit monitor lock accessed using* {@code synchronized} methods and statements...原创 2020-09-27 22:26:28 · 273 阅读 · 0 评论 -
并发(多线程)------CyclicBarrier解读与例程
前言:CyclicBarrier ,字面上Cyclic+Barrier --->循环屏障/障碍这个类所表达的思想和CountDownLauch不一样,CountDownLatch类(见我上篇博客)是一次性的,也就是说如果不更新count,CountDownLatch在保持一次同步后就不会更新同步了 而CyclicBarrier是可以循环利用一开始设置的count同步的,这就是Cyclic的由来,线程到达指定的节点后,等待都到全了才会进行下一轮,这个节点就是屏障,障碍。可以从游戏的角度来理解..原创 2020-09-26 18:44:35 · 156 阅读 · 0 评论 -
并发(多线程)------CountDownLatch解读与实例
前言:从源码中的注释来实际应用CountDownLatch* A synchronization aid that allows one or more threads to wait until* a set of operations being performed in other threads completes.** <p>A {@code CountDownLatch} is initialized with a given <em>count</em原创 2020-09-26 15:11:35 · 255 阅读 · 0 评论 -
并发(多线程)------ 创建Thread,Runnable的各种方法
回头写原创 2020-09-26 14:11:03 · 146 阅读 · 0 评论