课程地址:【黑马程序员全面深入学习Java并发编程,JUC并发编程全套教程】;
(1)JavaSE基础课程中,介绍过多线程:【Java线程一:进程和线程;创建线程继承Thread,实现Runnable接口】;
(2)在后续扩展课程中,较为详细的介绍过线程池和ThreadLocal:【(20)线程池、分布式、Docker、Nginx、MQ:入门】;
目录
P1:为什么学习并发;
Tomcat,RPC框架(如Dubbo),消息中间件:这些框架底层已经提供了一定的并发处理能力;
P2:课程组织和特色;
上图所谓的模式,是指编写并发编程时,大家普遍采用的、正确的套路;
P3:预备知识;
pom:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
logback配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration
xmlns="http://ch.qos.logback/xml/ns/logback"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback logback.xsd">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss} [%t] %logger - %m%n</pattern>
</encoder>
</appender>
<logger name="c" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
P5:进程线程概念;
P6:并行并发概念;
P7:线程应用-异步调用;
P8、9、10:线程应用-提升效率;(说明、验证、小结)
PS:多核CPU才能提高效率;单核CPU,只能通过并发,让我们在感受上,觉得丝滑;
程序预热:JVM在执行代码时,会对其中反复执行的代码(如循环,被反复调用的代码)作优化;预热,就是让这些代码成为热点代码;
具体可以参考【并发编程_应用】文档;