下载此文档

java 并发编程.pptx


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
并发编程交流
bluedavy
2010-03-19
About PPT
对于Java体系而言主要还是借助多线程来做并发
so下面的一切都是多线程相关点,不涉及多进程
资源竞争和一致性
Sun JDK提供的支持
并发包值得学习的地方
尽可能Nonblocking--例子
线程
线程交互
线程池
线程跟踪和问题查找
线程调度
Some tips
资源竞争和一致性
Sun JDK提供的支持
Synchronized
Semaphore、 CountdownLatch
ReentrantLock、Condition
AtomicInteger、ConcurrentHashMap、ArrayBlockingQueue
资源竞争和一致性
并发包值得学习的地方
AtomicInteger系列
CAS
ConcurrentHashMap
拆分锁
Semaphore、CountdownLatch
并发包中最强悍的类:AbstractQueuedSynchronizer

基于队列来做等待
看的也不是非常明白,需要懂的人分享下
尽可能Nonblocking例子
常见代码如下
private static Map<String,Connection> connections=new HashMap<String,Connection>();
public Connection get(String key) throws Exception{
synchronized(connections){
if((key)){
return (key);
}
Connection conn=createConnection(key);
(key,conn);
return conn;
}
}
尽可能Nonblocking例子
改造想法
connections改为ConcurrentHashMap
借助putIfAbsent来减少判断是否存在的lock
private static ConcurrentHashMap<String,Connection> connections=new ConcurrentHashMap<String,Connection>();
public Connection get(String key) throws Exception{
if((key)){
return (key);
}
Connection conn=createConnection(key);
Connection realConn=(key,conn);
if(realConn!=null){
();
}
return realConn;
}
尽可能Nonblocking例子
改造想法
能否不创建无谓的连接,想到了FutureTask
private static ConcurrentHashMap<String,FutureTask<Connection>> connections=new ConcurrentHashMap<String,FutureTask<Connection>>();
public Connection get(final String key) throws Exception{
if((key)){
return (key).get;
}
FutureTask<Connection> newTask=new FutureTask<Connection>(new Callable<Connection>(){
public Connection call() throws Exception{
return createConnection(key);
}
});
FutureTask<Connection> task=(key, newTask);
if(task==null){
();
return ();
}
return ();
}
线程

java 并发编程 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aena45
  • 文件大小158 KB
  • 时间2021-08-12
最近更新