JUC并发编程
文章平均质量分 88
java多线程实战
小徐也要努力鸭
逝者如斯夫,不舍昼夜!!!
展开
-
java:线程等待与唤醒 - Object的wait()和notify()
java使用Object类的wait()和notify()方法,可以实现线程等待和唤醒(Object类为所有类的父类,即所有类天然具有线程等待和唤醒的方法,一般使用Object类的wait()和notify()方法即可)。使用wait()、notify()时,有一些注意点,比如原创 2023-02-25 18:35:36 · 653 阅读 · 0 评论 -
java:AtomicReference使用
AtomicReference源码可知,本质是使用CAS方法+自旋更新引用对象value(AtomicReference是泛型类,V value代表引用对象),如getAndUpdate、updateAndGet、getAndAccumulate、accumulateAndGet方法。因为CAS利用CPU指令保证了操作的原子性(更新安全可靠),达到了锁的效果,而自旋则是采用循环的方式尝试获取锁,当线程发现锁被占用,会循环判断锁状态,直至获取锁。原创 2022-10-25 19:34:30 · 4580 阅读 · 0 评论 -
java:CompletableFuture使用
1 前言FutureTask的get()方法会造成阻塞,而轮询isDone()又会耗费CPU,jdk1.8引入了CompletableFuture,作者是Doug Lea。CompletableFuture针对Future的一些缺点进行了优化,例如回调通知,异步任务完成或产生异常,自动调用回调方法;创建异步任务,多个任务前后可组合处理等等。2 使用2.1 CompletableFuture的4个静态方法简介CompletableFuture除了实现了Future接口,还实现了CompletionStage接原创 2022-10-07 18:58:40 · 7966 阅读 · 0 评论 -
java:Unsafe
底层的源码中,经常可见Unsafe,Unsafe类是java用于内存管理的类,但操作不当,可能导致内存泄漏等问题,官方亦不推荐过多使用Unsafe,故而名为Unsafe。原创 2022-09-29 14:19:43 · 1876 阅读 · 0 评论