- 0
- 0
- 约3.45千字
- 约 36页
- 2019-08-18 发布于北京
- 举报
聊聊并发编程.PDF
并发编程
sunkai
趋势
摩尔定律
多核危机
Amdahl定律
Erlang Haskell Clojure Go Scala
并发 vs 并⾏
并发是同⼀时间应对(dealing with )多件事情的能⼒;
并⾏是同⼀时间动⼿做(doing )多件事情的能⼒;
—— Rod Pike
并⾏不等于 多核
Bit-Level
Instruction-Level
Data-Level
Task-Level
并发不只是 多核多线程
性能
⾼效
容错
简单
聊聊并发模型
线程 锁
线程 锁
• 底层硬件运⾏过程的形式化
• 并发的基本单元—线程
• 线程间通过共享内存来通信
线程 锁
• 竞争条件
• 乱序
• 可⻅性
线程 锁
• 语⾔级解决⽅案
- 内存模型 ie. Java Memory Model (JSR 133)
- happens-before
- as-if-serial
• 其他问题
- 死锁
- 活锁
复杂性
• 可中断锁
• ThreadPool
• 可超时锁
• CopyOnWrite
• 交替锁
• BlockingQueue
• 分段锁
• Compare and swap
• Condition
可变状态 + 并发 = 不确定性
可变性是灾难!
函数式编程
函数式编程
• 命令式编程 vs 函数式编程
- 计算过程,转换成改变全局状态的指令
- 计算过程,抽象为表达式(纯函数)求值
函数式编程
• y = f(x)
- input: x
- output: y
• ⽆副作⽤的纯函数,⽆可变状态,天然⽀持并发
• x=x+1 FAIL
函数式编程
• Immutable data
• First class functions
• Tail recursion
• Currying
•
…
函数式编程
list.parallelStream
.map(this::retrieveFromA)
.map(this::processUsingB)
.forEach(this::saveToC)
Java 8 Streams
STM
函数式编程 - Clojure
• Lisp⽅⾔
• b
您可能关注的文档
- 第十讲机床颤振的早期诊断与在线监控.ppt
- 第四章可重用性和可移植性-火龙果软件.ppt
- 第四章数字PID控制算法-Read.PDF
- 第四章材料中的相变.ppt
- 第四章活性污泥系统管理手册-清沂山石化.doc
- 第四部分验收、交付与保障要求.doc
- 籼稻矮化多分蘖突变体gsor23的基因克隆与表达分析.PDF
- 系统安装-九州档案.PDF
- 系统性红斑狼疮患者巨噬细胞表型和功能初步研究-现代免疫学.PDF
- 纯电动汽车低温实际使用续航里程变化分析研究课题简介.PDF
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 数学物理方程讲解课后答案一二章--姜礼尚.pdf VIP
- 最新公路工程试验检测项目参数检验频率一览表资料.doc VIP
- 海南自贸港总体方案.pptx VIP
- 人教版小学语文一年级上册期末考试试题.pdf VIP
- 正步的行进与立定.doc
- 第3讲+走进新时代+课件《新时代中国特色社会主义思想学生读本(小学低年级)》.ppt VIP
- 2025-2026粤教粤科版(2024)科学二年级上册教学设计(附目录) .pdf
- 横纹肌溶解症--精品课件.ppt VIP
- 【9历一模】2025年安徽省蚌埠市五河县中考一模历史试题(含解析).pdf VIP
- 精品解析:2024-2025学年山东省济南市高新技术产业开发区人教版四年级上册期末考试数学试卷(原卷版).docx VIP
原创力文档

文档评论(0)