Submit Search
Upload
并发编程交流
•
Download as PPTX, PDF
•
23 likes
•
2,576 views
bluedavy lin
Follow
杭州程序员并发编程交流PPT,活动地址: http://hangzhou.koubei.com/huodong/10610100000004750
Read less
Read more
Technology
Report
Share
Report
Share
1 of 12
Download now
Recommended
Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇
bluedavy lin
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
ykdsg
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查
bluedavy lin
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇
bluedavy lin
Java常见问题排查
Java常见问题排查
bluedavy lin
Java内存管理问题案例分享
Java内存管理问题案例分享
bluedavy lin
JVM内容管理和垃圾回收
JVM内容管理和垃圾回收
Tony Deng
HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙
bluedavy lin
Recommended
Sun jdk 1.6内存管理 -使用篇
Sun jdk 1.6内存管理 -使用篇
bluedavy lin
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
ykdsg
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查
bluedavy lin
Sun JDK 1.6内存管理 -调优篇
Sun JDK 1.6内存管理 -调优篇
bluedavy lin
Java常见问题排查
Java常见问题排查
bluedavy lin
Java内存管理问题案例分享
Java内存管理问题案例分享
bluedavy lin
JVM内容管理和垃圾回收
JVM内容管理和垃圾回收
Tony Deng
HBase@taobao for 技术沙龙
HBase@taobao for 技术沙龙
bluedavy lin
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)
wang hongjiang
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
线上问题排查交流
线上问题排查交流
Edward Lee
Jvm内存管理基础
Jvm内存管理基础
wang hongjiang
JVM及其调优
JVM及其调优
zhongbing liu
Aswan&hump
Aswan&hump
wang hongjiang
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
ddviplinux
Mysql fast share
Mysql fast share
rfyiamcool
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
Kris Mok
Ali-tomcat
Ali-tomcat
wang hongjiang
Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
Exodus2 大局观
Exodus2 大局观
wang hongjiang
Java cpu
Java cpu
ykdsg
Golang 高性能实战
Golang 高性能实战
rfyiamcool
Exodus重构和向apollo迁移
Exodus重构和向apollo迁移
wang hongjiang
Java7 fork join framework and closures
Java7 fork join framework and closures
wang hongjiang
Lamp高性能设计
Lamp高性能设计
锐 张
MongoDB at Qihoo 360
MongoDB at Qihoo 360
MongoDB
Lamp优化实践
Lamp优化实践
zhliji2
Sun jdk 1.6内存管理 -使用篇-毕玄
Sun jdk 1.6内存管理 -使用篇-毕玄
锐 张
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
ArBing Xie
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
More Related Content
What's hot
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)
wang hongjiang
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
线上问题排查交流
线上问题排查交流
Edward Lee
Jvm内存管理基础
Jvm内存管理基础
wang hongjiang
JVM及其调优
JVM及其调优
zhongbing liu
Aswan&hump
Aswan&hump
wang hongjiang
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
ddviplinux
Mysql fast share
Mysql fast share
rfyiamcool
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
Kris Mok
Ali-tomcat
Ali-tomcat
wang hongjiang
Btrace intro(撒迦)
Btrace intro(撒迦)
ykdsg
Exodus2 大局观
Exodus2 大局观
wang hongjiang
Java cpu
Java cpu
ykdsg
Golang 高性能实战
Golang 高性能实战
rfyiamcool
Exodus重构和向apollo迁移
Exodus重构和向apollo迁移
wang hongjiang
Java7 fork join framework and closures
Java7 fork join framework and closures
wang hongjiang
Lamp高性能设计
Lamp高性能设计
锐 张
MongoDB at Qihoo 360
MongoDB at Qihoo 360
MongoDB
Lamp优化实践
Lamp优化实践
zhliji2
Sun jdk 1.6内存管理 -使用篇-毕玄
Sun jdk 1.6内存管理 -使用篇-毕玄
锐 张
What's hot
(20)
Effective linux.3.(diagnosis)
Effective linux.3.(diagnosis)
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
线上问题排查交流
线上问题排查交流
Jvm内存管理基础
Jvm内存管理基础
JVM及其调优
JVM及其调优
Aswan&hump
Aswan&hump
Jvm基础调优实践(v1.0)
Jvm基础调优实践(v1.0)
Mysql fast share
Mysql fast share
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
Ali-tomcat
Ali-tomcat
Btrace intro(撒迦)
Btrace intro(撒迦)
Exodus2 大局观
Exodus2 大局观
Java cpu
Java cpu
Golang 高性能实战
Golang 高性能实战
Exodus重构和向apollo迁移
Exodus重构和向apollo迁移
Java7 fork join framework and closures
Java7 fork join framework and closures
Lamp高性能设计
Lamp高性能设计
MongoDB at Qihoo 360
MongoDB at Qihoo 360
Lamp优化实践
Lamp优化实践
Sun jdk 1.6内存管理 -使用篇-毕玄
Sun jdk 1.6内存管理 -使用篇-毕玄
Similar to 并发编程交流
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
ArBing Xie
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
Target Source
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
建興 王
并发编程实践
并发编程实践
longhao
Java并发核心编程
Java并发核心编程
wavefly
Java并发编程培训
Java并发编程培训
dcshi
Java并发编程培训
Java并发编程培训
longhao
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
Simen Li
Notes of jcip
Notes of jcip
Dai Jun
Mybatis学习培训
Mybatis学习培训
flynofry
线程与并发
线程与并发
Tony Deng
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Justin Lin
Javascript primer plus
Javascript primer plus
Dongxu Yao
Struts Mitac(1)
Struts Mitac(1)
wangjiaz
高性能Lamp程序设计 付超群
高性能Lamp程序设计 付超群
Shaoning Pan
Java trouble shooting
Java trouble shooting
Min Zhou
Java bytecode
Java bytecode
申 艳超
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
maclean liu
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
wang hongjiang
Similar to 并发编程交流
(20)
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
Terracotta And Continuent Based Clustering Architecture
Terracotta And Continuent Based Clustering Architecture
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
并发编程实践
并发编程实践
Java并发核心编程
Java并发核心编程
Java并发编程培训
Java并发编程培训
Java并发编程培训
Java并发编程培训
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
Notes of jcip
Notes of jcip
Mybatis学习培训
Mybatis学习培训
线程与并发
线程与并发
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Spring 2.0 技術手冊第五章 - JDBC、交易支援
Javascript primer plus
Javascript primer plus
Struts Mitac(1)
Struts Mitac(1)
高性能Lamp程序设计 付超群
高性能Lamp程序设计 付超群
Java trouble shooting
Java trouble shooting
Java bytecode
Java bytecode
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
深入剖析Concurrent hashmap中的同步机制(上)
深入剖析Concurrent hashmap中的同步机制(上)
More from bluedavy lin
Java memory problem cases solutions
Java memory problem cases solutions
bluedavy lin
Hbase简介与实践分享
Hbase简介与实践分享
bluedavy lin
菜鸟看Hbase
菜鸟看Hbase
bluedavy lin
JavaOne summary
JavaOne summary
bluedavy lin
Sun jdk 1.6 gc english version
Sun jdk 1.6 gc english version
bluedavy lin
Sun jdk 1.6 gc
Sun jdk 1.6 gc
bluedavy lin
OSGi理论与实战
OSGi理论与实战
bluedavy lin
More from bluedavy lin
(7)
Java memory problem cases solutions
Java memory problem cases solutions
Hbase简介与实践分享
Hbase简介与实践分享
菜鸟看Hbase
菜鸟看Hbase
JavaOne summary
JavaOne summary
Sun jdk 1.6 gc english version
Sun jdk 1.6 gc english version
Sun jdk 1.6 gc
Sun jdk 1.6 gc
OSGi理论与实战
OSGi理论与实战
并发编程交流
1.
并发编程交流 bluedavy 2010-03-19
2.
AboutPPT 对于Java体系而言主要还是借助多线程来做并发 so下面的一切都是多线程相关点,不涉及多进程
资源竞争和一致性 Sun JDK提供的支持 并发包值得学习的地方 尽可能Nonblocking--例子 线程 线程交互 线程池 线程跟踪和问题查找 线程调度 Some tips
3.
资源竞争和一致性 Sun JDK提供的支持
Synchronized Semaphore、 CountdownLatch ReentrantLock、Condition AtomicInteger、ConcurrentHashMap、ArrayBlockingQueue
4.
资源竞争和一致性 并发包值得学习的地方 AtomicInteger系列
CAS ConcurrentHashMap 拆分锁 Semaphore、CountdownLatch 并发包中最强悍的类:AbstractQueuedSynchronizer 基于LockSupport.park和LockSupport.unpark来操控线程是否可被调度 基于队列来做等待 看的也不是非常明白,需要懂的人分享下
5.
尽可能Nonblocking例子 常见代码如下 private
static Map<String,Connection> connections=new HashMap<String,Connection>(); public Connection get(String key) throws Exception{ synchronized(connections){ if(connections.containsKey(key)){ return connections.get(key); } Connection conn=createConnection(key); connections.put(key,conn); return conn; } }
6.
尽可能Nonblocking例子 改造想法 connections改为ConcurrentHashMap
借助putIfAbsent来减少判断是否存在的lock private static ConcurrentHashMap<String,Connection> connections=new ConcurrentHashMap<String,Connection>(); public Connection get(String key) throws Exception{ if(connections.containsKey(key)){ return connections.get(key); } Connection conn=createConnection(key); Connection realConn=connections.putIfAbsent(key,conn); if(realConn!=null){ conn.close(); } return realConn; }
7.
尽可能Nonblocking例子 改造想法 能否不创建无谓的连接,想到了FutureTask
private static ConcurrentHashMap<String,FutureTask<Connection>> connections=new ConcurrentHashMap<String,FutureTask<Connection>>(); public Connection get(final String key) throws Exception{ if(connections.containsKey(key)){ return connections.get(key).get; } FutureTask<Connection> newTask=new FutureTask<Connection>(new Callable<Connection>(){ public Connection call() throws Exception{ return createConnection(key); } }); FutureTask<Connection> task=connections.putIfAbsent(key,newTask); if(task==null){ newTask.run(); return newTask.get(); } return task.get(); }
8.
线程 线程交互 wait/notify(notifyAll)
在测kilim一个版本时,高压力的情况下wait/notify貌似有bug,jdk是1.6.0_07 线程池 ThreadPoolExecutor做的已经不错了,但要注意合理使用 不要使用无限制大小的线程池 最好自行实现ThreadFactory,最少给线程加上个前缀 当超过coreSize后,会扔到指定的BlockingQueue中,因此要注意这个地方...
9.
线程 线程跟踪和问题查找 jstack、tda、visualvm
jprofiler pstat+jstack直接查找耗cpu的线程
10.
线程调度 最常见的问题在于必须是一个请求占据一个线程,无论这个请求中途是否要去远程访问、文件IO或锁等待; Coroutinemaybe是可以考虑的方案
轻量级线程 基于栈分析保存相关的上下文信息:会多消耗内存 要求整个处理过程中不能有阻塞 意味着锁、数据库访问、网络访问都得处理好 Java中:Scala、Kilim
11.
Some tips 多线程后一定要考虑对资源的消耗,否则搞不好性能反倒更差了
CPU cpu切换是否太严重 内存 内存消耗是否严重,在网络通信中最明显 性能 尽可能Non-Blocking 拆分锁 隔离(ReadWrite) CopyOnWrite,允许读脏数据
Download now