会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
管理
订阅
随笔分类 -
JUC
Java多线程之深入解析ThreadLocal和ThreadLocalMap
摘要:ThreadLocal概述 ThreadLocal是线程变量,ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 它具有3个特性: 线程并发:在多线程并发场景下使用。 传递数
阅读全文
posted @
2020-06-05 19:25
xd会飞的猫
阅读(3821)
评论(0)
推荐(1)
【JUC】CAS(Compare And Swap)及其ABA问题
摘要:CAS和AtomicInteger AtomicInteger用来保证自增原子性,它的实现是基于CAS(比较和交换)的。 CAS(CompareAndSwap):判断内存某个位置的值是否与预期值一致,如果是则更改为新值,这个过程是原子的。不会造成数据不一致的问题。 compareAndSet(exc
阅读全文
posted @
2020-05-31 15:07
xd会飞的猫
阅读(396)
评论(0)
推荐(0)
【JUC】如何理解Java的volatile关键字?
摘要:并发和并行的区别 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时
阅读全文
posted @
2020-05-31 14:13
xd会飞的猫
阅读(236)
评论(0)
推荐(0)
【JUC】手写多线程的题目小结
摘要:简单的线程池,体现线程的复用 不使用Executors.newFixedThreadPool(int)、Executors.newSingleThreadExecutor()、Executors.newCachedThreadPool(),而是通过ThreadPoolExecutor的7个参数的构造
阅读全文
posted @
2020-05-31 11:58
xd会飞的猫
阅读(267)
评论(0)
推荐(0)
【JUC】死锁的实现及其定位分析
摘要:死锁的概念 两个或两个以上的进程在执行过程中,因抢夺资源而造成的一种互相等待的现象,若无外力干涉,它们都无法继续推进,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 实现死锁 1 class HoldLockThread implemen
阅读全文
posted @
2020-05-28 18:50
xd会飞的猫
阅读(220)
评论(0)
推荐(0)
【JUC】如何理解线程池?第四种使用线程的方式
摘要:线程池的概念 线程池的主要工作的控制运行的线程的数量,处理过程种将任务放在队列,线程创建后再启动折现任务,如果线程数量超过了最大的数量,则超过部分的线程排队等待,直到其他线程执行完毕后,从队列种取出任务来执行。 处理流程: 1.线程池判断核心线程池的线程是否全部在执行任务? 1.1 不是:创建一个新
阅读全文
posted @
2020-05-28 18:24
xd会飞的猫
阅读(545)
评论(0)
推荐(0)
【JUC】实现多线程的第三种方式Callable
摘要:实现线程的三种方式比较 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)
【JUC】synchronizated和lock的区别&新lock的优势
摘要:原始构成 synchronized是关键字,属于JVM层面 javap -c 的结果显示 synchronized是可重入锁 11:是正常退出 17:是异常退出【保证不产生死锁和底层故障】 Lock是java.util.concurrent.locks包中的一个接口 是API层面的锁 使用方法 sy
阅读全文
posted @
2020-05-25 20:17
xd会飞的猫
阅读(352)
评论(0)
推荐(0)
【JUC】阻塞队列&生产者和消费者
摘要:阻塞队列 线程1往阻塞队列添加元素【生产者】 线程2从阻塞队列取出元素【消费者】 当队列空时,获取元素的操作会被阻塞 当队列满时,添加元素的操作会被阻塞 阻塞队列的优势:在多线程领域,发生阻塞时,线程被挂起,条件满足时,被挂起的线程自动被唤醒。使用阻塞队列,不需要关心什么时候需要阻塞线程(开发效率差
阅读全文
posted @
2020-05-25 19:39
xd会飞的猫
阅读(298)
评论(0)
推荐(0)
【JUC】CyclicBarrier和Semaphore的使用
摘要:CyclicBarrier的使用 CyclicBarrier:可以让一组检测到一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有的屏障拦截的线程才会继续执行,线程进入屏障通过CyclicBarrier的wait方法。 public class CyclicBarrierTest { p
阅读全文
posted @
2020-05-25 16:09
xd会飞的猫
阅读(199)
评论(0)
推荐(0)
【JUC】CountDownLatch和Java枚举的使用例子
摘要: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)
公告