4006-998-758
3000+课程任你选择
Java多线程并发编程实战
研发学院 多线程基础 线程安全 线程间通信 开课时间:2022-04-12
杜云飞

从事开发和架构工作近10年,擅长Java体系下各类技术栈、精通微服务、分布式、高并发解决方案,并拥有 HBase/Hadoop、Flink等大数据平台架构经验,在小虫科技负责研发线所有产品技术架构、团队管理等工作,开发了多款金融、风控大数据、 电商、区块链等产品。

曾出版技术书籍《Akka 实战:快速构建高可用分布式应用》,受到多位业界知名技术专家联名推荐作序。同时也受邀为阿里高级技术专家周立《Spring Cloud与 Docker 微服务架构实战》作序推荐,该书是国内首本原创相关书籍。目前担任多家公司高级技术顾问,提供技术分享、培训和咨询等服务。


查看老师详情
课程内容

课程介绍


在互联网+的今天,人们在PC、手机、Pad 上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。随着这些产品的高速发展,大家对高性能、稳定性、安全性、扩展性等方面有了更高的要求,而诞生于20多年前的Java平台,一直紧跟时代脉搏,兼收并蓄,持续优化,在编程领域交出最满意的答卷,最终成为现代互联网服务端开发的王者。对于任何服务端语言来说,并发机制都是直接影响性能的最关键因素,而本次课程,我们将主要聚焦于Java中最核心,也是最有难度的内容:多线程并发编程。Java是天然多线程模型,但是用好它却极为不易。Java并发包(新)从JDK5发布,一直到JDK8 Lambda、函数式编程的应用,大家在并发编程时所遵循的底层模式仍未有太大变化,只要我们能清晰掌握其中核心知识点,无论是任何编程范式,都能运用自如。本次课程会先从多线程编程基础开始讲起,然后针对线程安全、锁机制做较为全面的解读。同时,我们通过对并发包常见API的实战性讲解,让大家能完全掌握如何编写一款健壮且安全的多线程并发应用,这里面涉及到的内容有常见线程池及参数配置、线程池调优、常见API如ReentranLock、Condition、CountDownLatch的应用等。最后,我们会了解如何灵活运用Future、CompletableFuture等API编写符合业务需要的异步处理功能。


课程收益


1、熟练掌握Java并发编程基础及应用场景;

2、熟练掌握Java并发包的使用,线程池配置及调优;

3、熟练掌握Java异步功能开发、函数式编程与并发编程的结合等。


课程对象


从事Java的开发人员、测试人员以及对Java感兴趣的人员。


课程大纲


主题

内容

课程大纲

 

 

 

 

Java并发编程基础(3H)

 

 

 

 

 

 

 

 

该单元介绍Java多线程基础知识,比如Thread/Runnable API、线程状态/生命周期、同步锁

 

 

 

1.多线程基础

1.1. 多线程基础介绍

1.2. 线程创建之Thread/Runnable

1.3. 线程状态及生命周期(NEW、RUNNABLE、RUNNING、BLOCKED、TERMINATED)

1.4. Thread   API(sleep、yield、join等)

2. 线程安全

2.1线程安全问题的本因

(案例:如何避免编写一个不安全的业务逻辑?)

2.2 Synchronized关键字详解

2.3 线程间数据隔离之ThreadLocal

 (案例:调用链跟踪系统是如何使用ThreadLocal的)

3. 线程间通信

3.1了解wait、notify

3.2生产者-消费者模式(案例:队列缓冲在任务处理中的应用)

 

 

第二单元

Java线程池(1.5H)

 

 

该单元主要针对5中线程池的应用及调优进行剖析

 

 

4. 线程池基础

4.1 线程池概要

4.2 线程池基本原理

4.3 线程池类型

4.3.1   newFixedThreadPool(int nThreads)

4.3.2   newSingleThreadExecutor

4.3.3 newCachedThreadPool

4.4 线程池实战演练(案例:线程池在服务端处理时的选型、调优及注意事项)

第三单元

异步与函数式编程(1.5H)

该单元结合函数式编程、 Future/CompletableFuture实现优雅的异步处理

 

5. 异步编程

5.1 为什么需要异步?

5.2 Java对异步编程的支持

5.3 使用Future编写异步功能

5.4 Future的增强版:CompletableFuture

5.5 组合式CompletableFuture

5.6 结合Stream(案例:整合异步计算结果)

 






返回上一级