拉勾教育-Java 并发编程 78 讲

拉勾教育-Java 并发编程 78 讲

课程目录

开篇词 由点及面 搭建你的 Java 并发知识网.mp4

第01讲 为何说只有 1 种实现线程的方法?.mp4

第02讲 如何正确停止线程?为什么 volatile 标记位的停止方法是错误的?.mp4

第03讲 线程是如何在 6 种状态之间转换的?.mp4

notifyAll 方法的使用注意事项?.mp4

第05讲 有哪几种实现生产者消费者模式的方法?.mp4

第06讲 一共有哪 3 类线程安全问题?.mp4

第07讲 哪些场景需要额外注意线程安全问题?.mp4

第08讲 为什么多线程会带来性能问题?.mp4

第09讲 使用线程池比手动创建线程好在哪里?.mp4

第10讲 线程池的各个参数的含义?.mp4

第11讲 线程池有哪 4 种拒绝策略?.mp4

第12讲 有哪 6 种常见的线程池?什么是 Java8 的 ForkJoinPool?.mp4

第13讲 线程池常用的阻塞队列有哪些?.mp4

第14讲 为什么不应该自动创建线程池?.mp4

第15讲 合适的线程数量是多少?CPU 核心数和线程数的关系?.mp4

第16讲 如何根据实际需要 定制自己的线程池?.mp4

第17讲 如何正确关闭线程池?shutdown 和 shutdownNow 的区别?.mp4

第18讲 线程池实现“线程复用”的原理?.mp4

第19讲 你知道哪几种锁?分别有什么特点?.mp4

第20讲 悲观锁和乐观锁的本质是什么?.mp4

第21讲 如何看到 synchronized 背后的“monitor 锁”?.mp4

第22讲 synchronized 和 Lock 孰优孰劣 如何选择?.mp4

第23讲 Lock 有哪几个常用方法?分别有什么用?.mp4

第24讲 讲一讲公平锁和非公平锁 为什么要“非公平”?.mp4

第25讲 读写锁 ReadWriteLock 获取锁有哪些规则?.mp4

第26讲 读锁应该插队吗?什么是读写锁的升降级?.mp4

第27讲 什么是自旋锁?自旋的好处和后果是什么呢?.mp4

第28讲 JVM 对锁进行了哪些优化?.mp4

第29讲 HashMap 为什么是线程不安全的?.mp4

第30讲 ConcurrentHashMap 在 Java7 和 8 有何不同?.mp4

第31讲 为什么 Map 桶中超过 8 个才转为红黑树?.mp4

第32讲 同样是线程安全 ConcurrentHashMap 和 Hashtable 的区别?.mp4

第33讲 CopyOnWriteArrayList 有什么特点?.mp4

第34讲 什么是阻塞队列?.mp4

第35讲 阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?.mp4

第36讲 有哪几种常见的阻塞队列?.mp4

第37讲 阻塞和非阻塞队列的并发安全原理是什么?.mp4

第38讲 如何选择适合自己的阻塞队列?.mp4

第39讲 原子类是如何利用 CAS 保证线程安全的?.mp4

第40讲 AtomicInteger 在高并发下性能不好 如何解决?为什么?.mp4

第41讲 原子类和 volatile 有什么异同?.mp4

第42讲 AtomicInteger 和 synchronized 的异同点?.mp4

第43讲 Java 8 中 Adder 和 Accumulator 有什么区别?.mp4

第44讲 ThreadLocal 适合用在哪些实际生产的场景中?.mp4

第45讲 ThreadLocal 是用来解决共享资源的多线程访问的问题吗?.mp4

第46讲 多个 ThreadLocal 在 Thread 中的 threadlocals 里是怎么存储的?.mp4

第47讲 内存泄漏——为何每次用完 ThreadLocal 都要调用 remove()?.mp4

第48讲 Callable 和 Runnable 的不同?.mp4

第49讲 Future 的主要功能是什么?.mp4

第50讲 使用 Future 有哪些注意点?Future 产生新的线程了吗?.mp4

第51讲 如何利用 CompletableFuture 实现“旅游平台”问题?.mp4

第52讲 信号量能被 FixedThreadPool 替代吗?.mp4

第53讲 CountDownLatch 是如何安排线程执行顺序的?.mp4

第54讲 CyclicBarrier 和 CountdownLatch 有什么异同?.mp4

第55讲 Condition、object.wait() 和 notify() 的关系?.mp4

第56讲 讲一讲什么是 Java 内存模型?.mp4

第57讲 什么是指令重排序?为什么要重排序?.mp4

第58讲 Java 中的原子操作有哪些注意事项?.mp4

第59讲 什么是“内存可见性”问题?.mp4

第60讲 主内存和工作内存的关系?.mp4

第61讲 什么是 happens-before 规则?.mp4

第62讲 volatile 的作用是什么?与 synchronized 有什么异同?.mp4

第63讲 单例模式的双重检查锁模式为什么必须加 volatile?.mp4

第64讲 你知道什么是 CAS 吗?.mp4

第65讲 CAS 和乐观锁的关系 什么时候会用到 CAS?.mp4

第66讲 CAS 有什么缺点?.mp4

第67讲 如何写一个必然死锁的例子?.mp4

第68讲 发生死锁必须满足哪 4 个条件?.mp4

第69讲 如何用命令行和代码定位死锁?.mp4

第70讲 有哪些解决死锁问题的策略?.mp4

第71讲 讲一讲经典的哲学家就餐问题.mp4

第72讲 final 的三种用法是什么?.mp4

第73讲 为什么加了 final 却依然无法拥有“不变性”?.mp4

第74讲 为什么 String 被设计为是不可变的?.mp4

第75讲 为什么需要 AQS?AQS 的作用和重要性是什么?.mp4

第76讲 AQS 的内部原理是什么样的?.mp4

第77讲 AQS 在 CountDownLatch 等类中的应用原理是什么?.mp4

第78讲 一份独家的 Java 并发工具图谱.mp4

资源下载此资源下载价格为19.9自学币,VIP免费,请先
资源下载
下载价格19.9 自学币
VIP免费

本站资料仅供个人学习和研究使用 若本帖作者内容侵犯了原著者的合法权益请提供相应证明材料本站审核通过后将即予以处理

0

评论0

本站资源持续更新中,只需赞助108自学币即可开通终生会员!
显示验证码
没有账号? 注册  忘记密码?

社交账号快速登录