课程目录


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

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

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

第04讲: waitnotifynotifyAll方法的使用注意事项?.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讲:如何正确关闭线程池? hutdown和hutdownNow的区别? .mp4

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

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

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

第21讲:如何看到ynchronized 背后的"monitor 锁"?.mp4

第22讲: ynchronized和Lock孰优孰劣,如何选择? .mp4

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

第24讲:讲—讲公平锁和非公平锁,为什么要“非公平"? .mp4

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

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

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

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

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

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

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

第32讲:同样是线程安全,ConcurrentHahMap 和Hahtable的区别? .mp4

第33讲: CopyOnWriteArrayLit有什么特点? .mp4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第62讲: volatile 的作用是什么?与ynchronized有什么异同? .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


课程讲义


·首先定义了一个int类型的静态变量l

然后启动两个线程,分别对变量i进行10000次+操f作

-理论上得到的结果应该是20000,但实际结

果却远小于理论结果,比如可能是12996,也可能是13323,每次的结果都还不一样





课程视频部分截图



Java并发编程网课教程Java程序设计从入门到精通基础课程视频讲解


Java并发编程网课教程Java程序设计从入门到精通基础课程视频讲解


Java并发编程网课教程Java程序设计从入门到精通基础课程视频讲解下载地址
Java并发编程
阿里网盘 / 课程大小:0.00字节
提取码:**** (购买后可见)
下载
评论下
  • 顺带评个分
提交
返回顶部