随笔分类 -  JUC

摘要:ThreadLocal概述 ThreadLocal是线程变量,ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 它具有3个特性: 线程并发:在多线程并发场景下使用。 传递数 阅读全文
posted @ 2020-06-05 19:25 xd会飞的猫 阅读(3821) 评论(0) 推荐(1)
摘要:CAS和AtomicInteger AtomicInteger用来保证自增原子性,它的实现是基于CAS(比较和交换)的。 CAS(CompareAndSwap):判断内存某个位置的值是否与预期值一致,如果是则更改为新值,这个过程是原子的。不会造成数据不一致的问题。 compareAndSet(exc 阅读全文
posted @ 2020-05-31 15:07 xd会飞的猫 阅读(396) 评论(0) 推荐(0)
摘要:并发和并行的区别 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时 阅读全文
posted @ 2020-05-31 14:13 xd会飞的猫 阅读(236) 评论(0) 推荐(0)
摘要:简单的线程池,体现线程的复用 不使用Executors.newFixedThreadPool(int)、Executors.newSingleThreadExecutor()、Executors.newCachedThreadPool(),而是通过ThreadPoolExecutor的7个参数的构造 阅读全文
posted @ 2020-05-31 11:58 xd会飞的猫 阅读(267) 评论(0) 推荐(0)
摘要:死锁的概念 两个或两个以上的进程在执行过程中,因抢夺资源而造成的一种互相等待的现象,若无外力干涉,它们都无法继续推进,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 实现死锁 1 class HoldLockThread implemen 阅读全文
posted @ 2020-05-28 18:50 xd会飞的猫 阅读(220) 评论(0) 推荐(0)
摘要:线程池的概念 线程池的主要工作的控制运行的线程的数量,处理过程种将任务放在队列,线程创建后再启动折现任务,如果线程数量超过了最大的数量,则超过部分的线程排队等待,直到其他线程执行完毕后,从队列种取出任务来执行。 处理流程: 1.线程池判断核心线程池的线程是否全部在执行任务? 1.1 不是:创建一个新 阅读全文
posted @ 2020-05-28 18:24 xd会飞的猫 阅读(545) 评论(0) 推荐(0)
摘要:实现线程的三种方式比较 1. 继承Thread类 1 class ExtendsThread extends Thread{ 2 public void run(){ 3 System.out.println("Thread"); 4 } 5 } 6 public class RunnableDem 阅读全文
posted @ 2020-05-28 15:33 xd会飞的猫 阅读(205) 评论(0) 推荐(0)
摘要:原始构成 synchronized是关键字,属于JVM层面 javap -c 的结果显示 synchronized是可重入锁 11:是正常退出 17:是异常退出【保证不产生死锁和底层故障】 Lock是java.util.concurrent.locks包中的一个接口 是API层面的锁 使用方法 sy 阅读全文
posted @ 2020-05-25 20:17 xd会飞的猫 阅读(352) 评论(0) 推荐(0)
摘要:阻塞队列 线程1往阻塞队列添加元素【生产者】 线程2从阻塞队列取出元素【消费者】 当队列空时,获取元素的操作会被阻塞 当队列满时,添加元素的操作会被阻塞 阻塞队列的优势:在多线程领域,发生阻塞时,线程被挂起,条件满足时,被挂起的线程自动被唤醒。使用阻塞队列,不需要关心什么时候需要阻塞线程(开发效率差 阅读全文
posted @ 2020-05-25 19:39 xd会飞的猫 阅读(298) 评论(0) 推荐(0)
摘要:CyclicBarrier的使用 CyclicBarrier:可以让一组检测到一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有的屏障拦截的线程才会继续执行,线程进入屏障通过CyclicBarrier的wait方法。 public class CyclicBarrierTest { p 阅读全文
posted @ 2020-05-25 16:09 xd会飞的猫 阅读(199) 评论(0) 推荐(0)
摘要:public enum CountryEnum { ONE(1,"春"), TWO(2,"夏"), THREE(3,"秋"), FOUR(4,"冬"); private Integer retCode; private String reMessage; CountryEnum(int retCod 阅读全文
posted @ 2020-05-25 15:30 xd会飞的猫 阅读(212) 评论(0) 推荐(0)