java+并发编程

上传人:r****d 文档编号:240761184 上传时间:2024-05-05 格式:PPTX 页数:12 大小:137.89KB
返回 下载 相关 举报
java+并发编程_第1页
第1页 / 共12页
java+并发编程_第2页
第2页 / 共12页
java+并发编程_第3页
第3页 / 共12页
点击查看更多>>
资源描述
并发编程交流bluedavy2021-03-19AboutPPT对于Java体系而言主要还是借助多线程来做并发so下面的一切都是多线程相关点,不涉及多进程资源竞争和一致性Sun JDK提供的支持并发包值得学习的地方尽可能Nonblocking-例子线程线程交互线程池线程跟踪和问题查找线程调度Some tips资源竞争和一致性Sun JDK提供的支持SynchronizedSemaphore、CountdownLatchReentrantLock、ConditionAtomicInteger、ConcurrentHashMap、ArrayBlockingQueue资源竞争和一致性并发包值得学习的地方AtomicInteger系列CASConcurrentHashMap拆分锁Semaphore、CountdownLatch并发包中最强悍的类:AbstractQueuedSynchronizer基于和来操控线程是否可被调度基于队列来做等待看的也不是非常明白,需要懂的人分享下尽可能Nonblocking例子常见代码如下private static Map connections=new HashMap();public Connection get(String key)throws Exceptionsynchronized(connections)if(key)return(key);Connection conn=createConnection(key);(key,conn);return conn;尽可能Nonblocking例子改造想法connections改为ConcurrentHashMap借助putIfAbsent来减少判断是否存在的lockprivate static ConcurrentHashMap connections=new ConcurrentHashMap();public Connection get(String key)throws Exceptionif(key)return(key);Connection conn=createConnection(key);Connection realConn=(key,conn);if(realConn!=null)();return realConn;尽可能Nonblocking例子改造想法能否不创立无谓的连接,想到了FutureTaskprivate static ConcurrentHashMapString,FutureTask connections=new ConcurrentHashMapString,FutureTask();public Connection get(final String key)throws Exceptionif(key)return(key).get;FutureTask newTask=new FutureTask(new Callable()public Connection call()throws Exceptionreturn createConnection(key););FutureTask task=(key,newTask);if(task=null)();return();return();线程线程交互wait/notify(notifyAll)在测kilim一个版本时,高压力的情况下wait/notify貌似有bug,jdk是线程池ThreadPoolExecutor做的已经不错了,但要注意合理使用不要使用无限制大小的线程池最好自行实现ThreadFactory,最少给线程加上个前缀当超过coreSize后,会扔到指定的BlockingQueue中,因此要注意这个地方.线程线程跟踪和问题查找jstack、tda、visualvmjprofilerpstat+jstack直接查找耗cpu的线程线程调度最常见的问题在于必须是一个请求占据一个线程,无论这个请求中途是否要去远程访问、文件IO或锁等待;Coroutinemaybe是可以考虑的方案轻量级线程基于栈分析保存相关的上下文信息:会多消耗内存要求整个处理过程中不能有阻塞意味着锁、数据库访问、网络访问都得处理好Java中:Scala、KilimSome tips多线程后一定要考虑对资源的消耗,否那么搞不好性能反倒更差了CPUcpu切换是否太严重内存内存消耗是否严重,在网络通信中最明显性能尽可能Non-Blocking拆分锁隔离ReadWriteCopyOnWrite,允许读脏数据
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!