视频选集
P22、唠嗑:线程和进程
P33、唠嗑:回顾多线程
P44、传统的Synchronized锁
P55、Lock锁
P66、Synchronized和Lock区别
P77、传统的生产者消费者问题、防止虚假唤醒
P88、Lock版的生产者消费者问题
P99、Condition实现精准通知唤醒
P1010、八锁现象彻底理解锁
P1111、CopyOnWriteArrayList
P1212、CopyOnWriteArraySet
P1313、ConcurrentHashMap
P1414、走近Callable
P1515、CountDownLatch
P1616、CyclicBarrier
P1717、Semaphore
P1818、ReadWriteLock
P1919、阻塞队列BlockingQueue
P2020、BlockingQueue四组API
P2121、同步队列SynchronousQueue
P2222、池化技术及线程池使用
P2323、7大参数及自定义线程池
P2424、CPU密集型和IO密集型
P2525、函数型接口和断定型接口
P2626、消费型接口和供给型接口
P2727、Stream流式计算
P2828、ForkJoin详解
P2929、异步回调
P3030、理解JMM
P3131、Volatile可见性及非原子性验证
P3232、指令重排详解
P3333、彻底玩转单例模式
P3434、深入理解CAS
P3535、原子引用解决ABA问题
P3636、可重入锁
P3737、自旋锁
P3838、死锁排查
P3939、JUC小结及资料说明
因为运行在虚拟机上
60改 40
结果对了
synchronized :队列 + 锁
锁可以锁两种东西:1)对象;2)Class,后面详细讲解
默认是非公平锁,不然3s 的 任务得等 3h 的任务执行完了才有机会执行
for 循环只有一行的时候可以简化
效果是好的
问题:synchronized 和 Lock 锁有什么区别?
lock.trylock() 尝试获取锁,不“傻傻地等”——线上环境长时间等线程可能会崩溃