【11102】-拉勾_Java 并发编程 78 讲
[238]开篇词:由点及面,搭建你的Java并发知识网.mp4
[239]第01讲:为何说只有1种实现线程的方法?.mp4
[240]第02讲:如何正确停止线程?为什么volatile 标记位的停止方法是错误的?.mp4
[241] 第03讲:线程是如何在6种状态之间转换的?.mp4
[242] 第04讲: waitnotifynotifyAll方法的使用注意事项? .mp4
[243]第05讲:有哪几种实现生产者消费者模式的方法?.mp4
[244] 第06讲:一共有哪3类线程安全问题? .mp4
[245]第07讲:哪些场景需要额外注意线程安全问题?.mp4
[246]第08讲:为什么多线程会带来性能问题? .mp4
[247] 第09讲:使用线程池比手动创建线程好在哪里?.mp4
[248]第10讲:线程池的各个参数的含义?.mp4
[249]第11讲:线程池有哪4种拒绝策略?.mp4
[250] 第12讲:有哪6种常见的线程池?什么是Java8 的ForkloinPool? .mp4
[251]第13讲:线程池常用的阻塞队列有哪些?.mp4
[252]第14讲:为什么不应该自动创建线程池?.mp4
[253]第15讲:合适的线程数量是多少? CPU 核心数和线程数的关系? .mp4
[254]第16讲:如何根据实际需要,定制自己的线程池?.mp4
[255] 第17讲:如何正确关闭线程池? hutdown和hutdownNow的区别? .mp4
[256]第18讲:线程池实现“线程复用"的原理?.mp4
[257] 第19讲:你知道哪几种锁?分别有什么特点?.mp4
[258]第20讲:悲观锁和乐观锁的本质是什么?.mp4
[259] 第21讲:如何看到ynchronized背后的"monitor锁"? .mp4
[260] 第22: ynchronized和Lock孰优孰劣,如何选择?.mp4
[261] 第23讲: Lock 有哪几个常用方法?分别有什么用?.mp4
[262]第24讲:讲一讲公平锁和非公平锁,为什么要"非公平"? .mp4
[263] 第29讲: HahMap为什么是线程不安全的?.mp4
文档
[264] 第30讲: ConcurrentHahMap在Java7和8有何不同? .mp4
[265]第25讲:读写锁ReadWriteLock获取锁有哪些规则?.mp4
[266]第26讲:读锁应该插队吗?什么是读写锁的升降级?.mp4
[267]第27讲:什么是自旋锁?自旋的好处和后果是什么呢?.mp4
[268]第28讲: JVM对锁进行了哪些优化?.mp4
[269]第31讲:为什么Map桶中超过8个才转为红黑树?.mp4
[270]第32讲:同样是线程安全, ConcurrentHahMap和Hahtable的区别? .mp4
[271] 第33讲: CopyOnWriteArrayLit 有什么特点? .mp4
[272]第34讲:什么是阻塞队列?.mp4
[273]第35讲:阻塞队列包含哪些常用的方法? add、offer、put等方法的区别?.mp4
[274] 第36讲:有哪几种常见的阻塞队列?.mp4
[275] 第37讲:阻塞和非阻塞队列的并发安全原理是什么?.mp4
[276]第38讲:如何选择适合自己的阻塞队列?.mp4
[277] 第39讲:原子类是如何利用CAS保证线程安全的? .mp4
[278] 第40讲: AtomicInteger在高并发下性能不好,如何解决?为什么?.mp4
[279]第41讲:原子类和volatile有什么异同? .mp4
[280] 第42讲: AtomicInteger和ynchronized的异同点?.mp4
[281] 第43讲: Java 8 中 Adder和Accumulator有什么区别? .mp4
[282] 第44讲: ThreadLocal适合用在哪些实际生产的场景中?.mp4
[283]第45讲: ThreadLocal 是用来解决共享资源的多线程访问的问题吗?.mp4
[284] 第46讲:多个ThreadLocal 在Thread中的threadlocal 里是怎么存储的?.mp4
[287] 第50讲:使用Future有哪些注意点? Future产生新的线程了吗?.mp4
[289]第51讲:如何利用CompletableFuture实现"旅游平台"问题? .mp4
[290] 第52讲:信号量能被FixedThreadPool替代吗? .mp4
[291]第53讲: CountDownLatch是如何安排线程执行顺序的?.mp4
[293] 第55讲: Condition、object.wait()和 notify()的关系? .mp4
[294] 第56讲:讲一讲什么是Java内存模型?.mp4
[295] 第57讲:什么是指令重排序?为什么要重排序?.mp4
[296] 第58讲: Java中的原子操作有哪些注意事项?.mp4
[297] 第59讲:什么是"内存可见性"问题?.mp4
[298]第60讲:主内存和工作内存的关系?.mp4
[299] 第61讲:什么是happen-before规则?.mp4
[300] 第62讲: volatile的作用是什么? 与ynchronized 有什么异同?.mp4
[301] 第63讲:单例模式的双重检查锁模式为什么必须加 volatile?.mp4
[302] 第64讲:你知道什么是CAS 吗? .mp4
[303]第65讲: CAS和乐观锁的关系,什么时候会用到CAS? .mp4
[304] 第66讲: CAS 有什么缺点? .mp4
[305] 第67讲:如何写一个必然死锁的例子?.mp4
[306]第68讲:发生死锁必须满足哪4个条件?.mp4
[307]第69讲:如何用命令行和代码定位死锁?.mp4
[308]第70讲:有哪些解决死锁问题的策略?.mp4
[309]第71讲:讲一讲经典的哲学家就餐问题.mp4
[310] 第72讲: final的三种用法是什么?.mp4
[311] 第73讲:为什么加了 final 却依然无法拥有“不变性"?.mp4
[312] 第74讲:为什么String被设计为是不可变的?.mp4
[313] 第75讲:为什么需要AQS? AQS的作用和重要性是什么?.mp4
[314] 第76讲: AQS的内部原理是什么样的?.mp4
[315] 第77讲: AQS在CountDownLatch等类中的应用原理是什么?.mp4
[316]第78讲:一份独家的Java并发工具图谱.mp4
[8723]参考文献、版权声明、致谢.mp4
返回列表