课程地址:【黑马程序员全面深入学习Java并发编程,JUC并发编程全套教程】;
(1)JavaSE基础课程中,介绍过多线程:【Java线程一:进程和线程;创建线程继承Thread,实现Runnable接口】;
(2)在后续扩展课程中,较为详细的介绍过线程池和ThreadLocal:【(20)线程池、分布式、Docker、Nginx、MQ:入门】;
目录
Tomcat,RPC框架(如Dubbo),消息中间件:这些框架底层已经提供了一定的并发处理能力;
上图所谓的模式,是指编写并发编程时,大家普遍采用的、正确的套路;
pom:
- <properties>
- <maven.compiler.source>1.8maven.compiler.source>
- <maven.compiler.target>1.8maven.compiler.target>
- properties>
- <dependencies>
- <dependency>
- <groupId>org.projectlombokgroupId>
- <artifactId>lombokartifactId>
- <version>1.18.10version>
- dependency>
- <dependency>
- <groupId>ch.qos.logbackgroupId>
- <artifactId>logback-classicartifactId>
- <version>1.2.3version>
- dependency>
- dependencies>
logback配置文件:
- "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%npattern>
- encoder>
- appender>
-
- <logger name="c" level="debug" additivity="false">
- <appender-ref ref="STDOUT"/>
- logger>
- <root level="ERROR">
- <appender-ref ref="STDOUT"/>
- root>
- configuration>
PS:多核CPU才能提高效率;单核CPU,只能通过并发,让我们在感受上,觉得丝滑;
程序预热:JVM在执行代码时,会对其中反复执行的代码(如循环,被反复调用的代码)作优化;预热,就是让这些代码成为热点代码;
具体可以参考【并发编程_应用】文档;