JUC
文章平均质量分 87
学而知不足~
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JUC第八课——ThreadPoolExecutor,ThreadPoolExecutor源码,ForkJionPool
线程池实现Executors:线程池的工厂JDK给我们提供的默认的线程池,阿里不建议使用自带的线程池,因为线程有个上界,可能导致越界ThreadPoolExecutor:我们通常所说的线程池。多个线程共享同一个任务队列。SingleThreadPoolCachedPoolFixedThreadPoolScheduledPoolForkJoinPool:先将任务分解,最后再汇总。每个线程有自己的任务队列。WorkStealingPoolSingleThreadPoolSingle原创 2022-01-06 11:43:18 · 386 阅读 · 0 评论 -
JUC第七课——复习、线程池
面试题要求用线程顺序打印A1B2C3…Z26LockSupportpackage character07;import java.util.concurrent.locks.LockSupport;/** * @author laimouren */public class T08_00_LockSupport { static Thread t1 = null,t2=null; public static void main(String[] args) throw原创 2022-01-05 11:27:32 · 177 阅读 · 0 评论 -
JUC第六课——容器
并发容器物理结构:只分数组和链表逻辑结构:如下Deque:双端队列HashTable、HashMap、SynchronizedHashMap、ConcurrentHashMapVector和HashTable:自带锁,现在基本不用从HashTable发展到HashMap、SynchronizedHashMap、ConcurrentHashMap测试HashTablepackage character06;/** * @author laimouren */public class原创 2021-10-21 01:00:26 · 243 阅读 · 0 评论 -
JUC第五课——AQS源码解析、ThreadLocal、四种引用
AQS源码解析AQS:AbstractQueuedSynchronizer以CAS为核心,替代了传统的synchronized了解一下VarHandle:可以简单理解为类似于指针,指向一个对象,普通属性也可以进行原子操作JDK9之前没有,直接操作二进制码,比反射快多了ThreadLocal...原创 2021-10-17 23:20:18 · 156 阅读 · 0 评论 -
JUC第四课——LockSupport、三道面试题、源码阅读原则
LockSupport基本操作package character04;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.LockSupport;/** * @author laimouren */public class LockSupport01 { public static void main(String[] args) { Thread t = new Threa原创 2021-10-16 01:09:13 · 159 阅读 · 0 评论 -
JUC第三课——复习、ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、ReadWriteLock、Semaphore、Exchanger
CAS复习类似乐观锁,是使用CPU的原语实现cas(期望值,更新值)例子:m = 0;m++;cas(0,1){for(;;)如果当前值==0 则m=1}AtomicXX类package character02;import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicInteger;/** * 解决同样问题的更高效的方法,使用AtomXX类 * At原创 2021-10-15 00:34:15 · 214 阅读 · 0 评论 -
JUC第二课——volatile关键字、锁优化和CAS
volatile关键字意思是可变的作用:保证线程可见性(每次写都会被线程读到)MESI缓存一致性协议禁止指令重排序(CPU)DCL单例Double Check Lock补充:单例模式加载类对象饿汉式package singleton;/** * 饿汉式 * 类加载到内存后,就实例化一个实例,JVM保证线程安全 * 简单实用,推荐使用 * 唯一缺点:不管用不用到,类装载的过程就完成了实例化 * Class.forName("") * @author lai原创 2021-10-12 21:15:07 · 161 阅读 · 0 评论 -
JUC第一课——线程以及Synchronized关键字
线程基本概念进程,线程,纤程创建线程的方法:继承Thread类,重写run()方法:class MyThread extends Thread{};创建实例:new MyThread().start();实现Runable接口,重写run()方法:MyRun implements Runable{}创建实例:new Thread(new MyRun()).start();使用Lambda表达式:创建实例:new Thread(()->{System.out.printl原创 2021-10-12 16:52:06 · 140 阅读 · 0 评论
分享