1.1 这门课程讲什么
这门课中的并发一词涵盖了在java平台的
- 进程
- 线程
- 并发
- 并行
以及java开发工具、并发问题以及解决方案,同时也会设计一些其他领域的开发。
1.2 为什么学这门课
应用层开发基本都是增删改查,但很多技术的底层都会设计到并发的知识(比如:tomca服务器,rpc框架dubbo,消息中间件rabbitmq等等)。
1.3 课程特色
以并发、并行为主线,穿插讲解。
大纲
一、 java 并发
1、进程
2、线程
3、并发之共享模型3.1 管理 - 悲观锁(阻塞)
3.2 JMM3.2.1 原子性
3.2.2 可见性
3.2.3 有序性3.3 无锁 - 乐观锁(非阻塞)
3.4 不可变
3.5 并发工具3.5.1 线程池
3.5.2 J.U.C3.5.2.1 Lock
3.5.2.2 Semaphore
3.5.2.4 CountdownLatch
3.5.2.5 CylicBarrier
3.5.2.6 ConcurrentHashMap
3.5.2.7 ConcurrentLinkedQueue
3.5.2.8 BlockingQueue
3.5.2.9 CopyOnWriteArrayList3.5.3 disruptor
3.5.4 guava3.6 异步编程
4、并发之非共享模型
4.1 私有
4.2 Actor - 弱一致性4.2.1 akka
5、并行
5.1 函数式编程
5.2 并行编程5.2.1 映射
5.2.2 归约6、其它领域
二、应用
1、效率
2、限流
3、同步
4、异步
5、缓存
6、队列
7、分治
8、统筹
三、原理
四、模式
1、Balking
2、Guarded Suspension
3、控制顺序
4、两阶段退出
5、WorkThread
6、Thread per Message
7、生产者/消费者
1.4 预备知识
1、不是初学者
2、线程安全问题,需要你接触过java web开发、jdbc开发、web服务器、分布式框架时才会遇到
3、基于JDK8,最好对函数式编程,lambda有一定的了解
4、采用了slf4j打印日志,这是好的实践
5、采用了lombok计划java bean编写
6、给每个线程取好名字,这也是一项好的实践
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/logbacklogback.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>

&spm=1001.2101.3001.5002&articleId=124646238&d=1&t=3&u=de69978014cc450e9cf55f9fde94e972)
601

被折叠的 条评论
为什么被折叠?



