并发实战
2022-11-09 18:13:44 0 举报
AI智能生成
并发的讲解和实战代码
作者其他创作
大纲/内容
①什么是状态共享
1、共享
①什么是状态可变
2、可变
①什么是状态变量
②有哪四种状态变量
3、状态
1)理解前提术语
①本质原因
②如何判断线程是否安全
1、出现线程安全问题
2、三种解决线程安全问题的思路
3、java中的几种同步机制
2)理解线程安全性
一、理解
第零节
1)复杂的定义
1、这些定义让人困惑的两个原因
2、如何定义线程安全,才不会困惑
2)困惑的定义
①什么是『正确性』
1、理解『正确性』
3)理解前提
1、简易版
2、完全版
3)正确的定义
一、定义
1、功能说明
2、代码举例
3、此 servlet 线程安全的原因
A、如何理解局部变量,不会产生线程安全性问题
①只有局部变量
A、如何理解无状态对象,没有共享状态?
②没有共享变量
③为什么说,多个线程访问同一个无状态对象,就好像访问不同的实例一样,也即好像没有访问共享的对象一样
4、无状态对象,线程安全的原因
1)因数分解 servlet
二、举例
第一节 线程安全性
一、新的需求
1)叙述
2)代码
1、起初
2、过程
3、最后
4、错误原因
3)可能的错误
二、解决方案
①概念
②特点
③解决思路
1、什么是『竞态条件』
2、什么时候会出现『竞态条件』
3、为什么竞态条件,会带来线程安全性问题
1)概念
①为什么『先检查后执行』类型是竞态条件中最常见的
②本质
现实生活中『先检查后执行』类型的竞态条件
延迟初始化中的『先检查后执行』类型的竞态条件
③举例(没有做思维导图,今后做)
1、『先检查后执行』类型竞态条件
2、『读取-修改-写入』类型竞态条件(没有做思维导图,今后做)
2)分类
执行时序、竞态条件与线程安全的关系
3)存在的问题
①思路叙述
A、为什么,要解决『竞态条件』问题,就要解决执行时序不确定的问题?而不是把多线程变为单线程?
B、使用什么方法,解决执行时序不正确的问题?
C、什么是正确的执行时序?
D、如何确保正确的执行时序
②思路解释
1、解决『竞态条件』引起的线程安全性问题的『思路』
①严谨地描述复合操作
②什么是复合操作?
A、方法一:加锁机制(下一节讲)
a、代码
b、解释
c、结论
B、方法二:使用一个现有的原子变量类
③如何定义复合操作
2、复合操作
4)解决方案
三、竞态条件
第二节 原子性
1)当前的原子变量类,使用情况?
2)当前的原子变量类,存在的问题?
一、原子变量类的局限性
1)目的
1、思路
2)如何实现
3)疑问
二、带有缓存的因式分解servlet
第三节 加锁机制
第二章 线程安全性
并发实战
0 条评论
回复 删除
下一页