并发编程
概述
这门课讲什么
这门课中的【并发】一词涵盖了在Java平台上的
- 进程
- 线程
- 并发
- 并行
以及Java并发工具、并发问题以及解决方案
为什么学这门课
在实际工作中,虽然经常会无意识用到并发相关的内容,但都不是很原始的使用方式,使用的都是经过了层层封装后的增强轮子,需要深入去触达最接近的底层逻辑,还需从原始的底层出发,才能知其用亦知其意。
课程特色
本门课程以并发、并行为主线,穿插讲解
预备知识
- 不是初学者
- 线程安全问题,需要你接触过java web开发,jdbc开发,web服务器,分布式框架时遇到
- 基于jdk8,最好对函数式编程、lambda有一定了解
- 采用slf4j打印日志
- 采用了lombok简化java bean编写
- 给每个线程起好名字
pom.xml依赖如下:
<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配置如下:
<?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>