SlideShare une entreprise Scribd logo
1  sur  35
线程与并发编程 MaYunLong
线程与并发编程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程基础知识 ,[object Object],[object Object]
线程的等待 (1) ,[object Object],[object Object],[object Object],[object Object]
线程的等待 (2) ,[object Object],[object Object],[object Object]
线程的等待 (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程的等待 (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程的等待 (5-1) ,[object Object],[object Object],[object Object]
线程的等待 (5-2) ,[object Object],[object Object]
线程的等待 (5-3) ,[object Object]
notify 与 notifyAll 区别   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
wait  和 yield 区别 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thread 与 Runable 区别 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Callable 与 Runable 区别 ,[object Object],[object Object],[object Object],[object Object],[object Object]
什么是并发编程 ,[object Object],[object Object]
阻塞队列 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程同步 (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程同步 (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程同步 (3-1) ,[object Object]
线程同步 (3-2) ,[object Object],[object Object],[object Object]
线程同步 (3-3) ,[object Object],[object Object]
同步注意事项 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
原子操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
时间间隔 (TimeUnit) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
并发 collection ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
异步线程结果 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程池 (1) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程池 (2) ,[object Object],[object Object]
线程池 (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程池 (4) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
线程池 (5) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
多线程! = 高性能 ,[object Object],[object Object],[object Object]
多线程的风险和注意事项 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
为什么要多线程 Donald Knuth 世界顶级计算机科学家 在我看来,这种现象 ( 并发 ) 或多或少是由于硬件设计者已经无计可施了导致的,他 们将 Moore 定律失效的责任推脱给软件开发者。 Donald Knuth 2008 年 7 月接受 Andrew Binstock 访谈
谢谢!

Contenu connexe

Tendances (20)

Ali-tomcat
Ali-tomcatAli-tomcat
Ali-tomcat
 
并发编程实践
并发编程实践并发编程实践
并发编程实践
 
C++工程实践
C++工程实践C++工程实践
C++工程实践
 
Java Thread
Java ThreadJava Thread
Java Thread
 
Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序Net Parallel Programming .NET平行處理與執行序
Net Parallel Programming .NET平行處理與執行序
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
 
Java多线程编程详解
Java多线程编程详解Java多线程编程详解
Java多线程编程详解
 
IOS入门分享
IOS入门分享IOS入门分享
IOS入门分享
 
Lua 语言介绍
Lua 语言介绍Lua 语言介绍
Lua 语言介绍
 
Exodus重构和向apollo迁移
Exodus重构和向apollo迁移Exodus重构和向apollo迁移
Exodus重构和向apollo迁移
 
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)
 
Golang server design pattern
Golang server design patternGolang server design pattern
Golang server design pattern
 
Cassandra运维之道(office2003)
Cassandra运维之道(office2003)Cassandra运维之道(office2003)
Cassandra运维之道(office2003)
 
线程编程方面
线程编程方面线程编程方面
线程编程方面
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题
 
Exodus2 大局观
Exodus2 大局观Exodus2 大局观
Exodus2 大局观
 
异步编程与浏览器执行模型
异步编程与浏览器执行模型异步编程与浏览器执行模型
异步编程与浏览器执行模型
 
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器  - Tomcat 原始碼分析深入淺出 Web 容器  - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
 
Aswan&hump
Aswan&humpAswan&hump
Aswan&hump
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 

Similaire à 线程与并发

高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
ideawu
 
Java并发编程培训
Java并发编程培训Java并发编程培训
Java并发编程培训
dcshi
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
evercislide
 
Java面试知识
Java面试知识Java面试知识
Java面试知识
yiditushe
 
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
 
J2ee经典学习笔记
J2ee经典学习笔记J2ee经典学习笔记
J2ee经典学习笔记
yiditushe
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结
ordinary2012
 
实验五 读者 写者问题
实验五 读者 写者问题实验五 读者 写者问题
实验五 读者 写者问题
jason1114
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
maclean liu
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
wangjiaz
 

Similaire à 线程与并发 (20)

高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
Java并发核心编程
Java并发核心编程Java并发核心编程
Java并发核心编程
 
Java并发编程培训
Java并发编程培训Java并发编程培训
Java并发编程培训
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
Java面试知识
Java面试知识Java面试知识
Java面试知识
 
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
 
Ian .net async programming
Ian .net async programmingIan .net async programming
Ian .net async programming
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Spring 2.0 技術手冊第五章 - JDBC、交易支援Spring 2.0 技術手冊第五章 - JDBC、交易支援
Spring 2.0 技術手冊第五章 - JDBC、交易支援
 
J2ee经典学习笔记
J2ee经典学习笔记J2ee经典学习笔记
J2ee经典学习笔记
 
Storm
StormStorm
Storm
 
Java并发编程实践
Java并发编程实践Java并发编程实践
Java并发编程实践
 
學好 node.js 不可不知的事
學好 node.js 不可不知的事學好 node.js 不可不知的事
學好 node.js 不可不知的事
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
高效能執行緒
高效能執行緒高效能執行緒
高效能執行緒
 
Hadoop学习总结
Hadoop学习总结Hadoop学习总结
Hadoop学习总结
 
5, initialization & cleanup
5, initialization & cleanup5, initialization & cleanup
5, initialization & cleanup
 
实验五 读者 写者问题
实验五 读者 写者问题实验五 读者 写者问题
实验五 读者 写者问题
 
配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制配置Oracle 10g 双向流复制
配置Oracle 10g 双向流复制
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 

Plus de Tony Deng

《我们如何工作》—质量保障
《我们如何工作》—质量保障《我们如何工作》—质量保障
《我们如何工作》—质量保障
Tony Deng
 
《我们如何工作》- 产品经理和工程师如何有效沟通
《我们如何工作》- 产品经理和工程师如何有效沟通《我们如何工作》- 产品经理和工程师如何有效沟通
《我们如何工作》- 产品经理和工程师如何有效沟通
Tony Deng
 
技术债务的形成
技术债务的形成技术债务的形成
技术债务的形成
Tony Deng
 
我们不了解的计算机世界(二)
我们不了解的计算机世界(二)我们不了解的计算机世界(二)
我们不了解的计算机世界(二)
Tony Deng
 
我们不了解的计算机世界(一)--Unix目录结构的来历
我们不了解的计算机世界(一)--Unix目录结构的来历我们不了解的计算机世界(一)--Unix目录结构的来历
我们不了解的计算机世界(一)--Unix目录结构的来历
Tony Deng
 
实时任务调度
实时任务调度实时任务调度
实时任务调度
Tony Deng
 
节约内存:Instagram的redis实践
节约内存:Instagram的redis实践节约内存:Instagram的redis实践
节约内存:Instagram的redis实践
Tony Deng
 

Plus de Tony Deng (20)

一页纸项目管理
一页纸项目管理一页纸项目管理
一页纸项目管理
 
Docker at the gate
Docker at the gateDocker at the gate
Docker at the gate
 
《我们如何工作》—质量保障
《我们如何工作》—质量保障《我们如何工作》—质量保障
《我们如何工作》—质量保障
 
《我们如何工作》- 产品经理和工程师如何有效沟通
《我们如何工作》- 产品经理和工程师如何有效沟通《我们如何工作》- 产品经理和工程师如何有效沟通
《我们如何工作》- 产品经理和工程师如何有效沟通
 
我们为何工作--找到正确的工作方式
我们为何工作--找到正确的工作方式我们为何工作--找到正确的工作方式
我们为何工作--找到正确的工作方式
 
SDN介绍
SDN介绍SDN介绍
SDN介绍
 
漫谈职业规划
漫谈职业规划漫谈职业规划
漫谈职业规划
 
一次Http请求过程分析
一次Http请求过程分析一次Http请求过程分析
一次Http请求过程分析
 
图解Git
图解Git图解Git
图解Git
 
一次Code review引发的思考
一次Code review引发的思考一次Code review引发的思考
一次Code review引发的思考
 
My sql迁移总结
My sql迁移总结My sql迁移总结
My sql迁移总结
 
一次项目的探险旅程
一次项目的探险旅程一次项目的探险旅程
一次项目的探险旅程
 
Scrum敏捷开发模型
Scrum敏捷开发模型Scrum敏捷开发模型
Scrum敏捷开发模型
 
Shoutv 冯晓东
Shoutv 冯晓东Shoutv 冯晓东
Shoutv 冯晓东
 
技术债务的形成
技术债务的形成技术债务的形成
技术债务的形成
 
我们不了解的计算机世界(二)
我们不了解的计算机世界(二)我们不了解的计算机世界(二)
我们不了解的计算机世界(二)
 
HBase
HBaseHBase
HBase
 
我们不了解的计算机世界(一)--Unix目录结构的来历
我们不了解的计算机世界(一)--Unix目录结构的来历我们不了解的计算机世界(一)--Unix目录结构的来历
我们不了解的计算机世界(一)--Unix目录结构的来历
 
实时任务调度
实时任务调度实时任务调度
实时任务调度
 
节约内存:Instagram的redis实践
节约内存:Instagram的redis实践节约内存:Instagram的redis实践
节约内存:Instagram的redis实践
 

线程与并发

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 为什么要多线程 Donald Knuth 世界顶级计算机科学家 在我看来,这种现象 ( 并发 ) 或多或少是由于硬件设计者已经无计可施了导致的,他 们将 Moore 定律失效的责任推脱给软件开发者。 Donald Knuth 2008 年 7 月接受 Andrew Binstock 访谈