- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java并发编程实践分享.ppt
* java.util.ConcurrentModificationException * * * WA定时器的流程图 * 1、线程多少,效率最高? CPU个数×1-3 (不考虑超线程处理) 过多的线程会导致CPU load过高(top 命令 sy值) 4、饱和策略都是什么? * 线程池的执行步骤 * 2、什么是阻塞队列?阻塞队列有什么用? 3、等待队列做什么用的?常用的队列有哪些? 不是线程越多就越快,线程多也会加重JVM和CPU的负担,甚至阻碍性能的提升 * 1、各个线程池的线程数,队列情况,适合那些场景 2、Spring中的使用情况 * * * 什么是CAS?什么是volatile * * * synchronized和非阻塞算法谁更合适?适合使用的场景 线程上下文切换 内存同步 阻塞 * 闭锁的概念和用法 * 精确控制必须加锁 * synchronized?与Lock的性能谁更好?使用场景如何? * WA伪代码展示 * * * 阻塞方法 * 紫色 休眠 绿色 运行 黄色 等待 * Java并发编程实践分享 ——WA定时器编程经验分享 cesc.wangl 以下方法哪个是线程安全 第一个方法: public void add(int i) { i++; } 第二个方法: public Object getLast(List list) { int lastIndex=list.size()-1; return list.get(lastIndex); } 第三个方法: public Object getLast(Vector v) { int lastIndex=v.size()-1; return v.get(lastIndex); } 第一个方法:private static void testList() {ListString tests=new ArrayListString();tests.add(a);tests.add(b);tests.add(“temp);tests.add(c);for(String test : tests){if(test.equals(b)){tests.remove(“temp);}System.out.println(test);}} 第二个方法: private static void testVector() { VectorString tests=new VectorString(); tests.add(a); tests.add(b); tests.add(“temp); tests.add(c); for(String test : tests) { if(test.equals(b)) { tests.remove(“temp); } System.out.println(test); } } 执行结果什么? JUC简介 线程池 Atomic Lock 并发编程注意事项 JDK1.5新增的类库 提供并发编程中很常用的实用工具类 线程池选哪个?多少线程合适?多大的队列合适? 第一个问题 ThreadPoolExecutor Executors BlockingQueue corePoolSize //核心池的大小maxPoolSize //最大池的大小keepAliveTime //超时时间workQueue //等待队列handler //饱和策略corePoolSize =CPU个数+1(计算密集型的操作)(Java Concurrency In Practice) AbortPolicy 抛异常RejectedExecutionException CallerRunsPolicy 调度者执行 DiscardOldestPolicy放弃最旧的未处理请求,执行新传入的任务 DiscardPolicy 不做任何操作,放弃新任务 BlockingQueue put 、take 生产者与消费者(工作队列与线程池) 新的请求超过线程池的处理能力,将请求放在队列中,而不是竞争CPU资源的线程队列,避免耗尽资源的情况出现 ArrayBlockingQueue、 LinkedBlockingDeque、 SynchronousQueue 注:如果任务之间有依赖,有限队列可能引起线程饥饿和死锁问题。 各种线程池 线程池 SingleThreadPool CachedThreadPool FixedThreadPool coolPoolSize 1 0 --- maxPoolSize 1 Integer.MAX_VALUE --- Queue LinkedBlocki
您可能关注的文档
- HTML规则.ppt
- HTML语言..ppt
- HTML语言个人学习简记.doc
- HTML语言标记.doc
- HTML语言知识.doc
- HTML超文本标记语言.doc
- IC卡密码配置说明.doc
- IDC项目是指什么.doc
- ID联网一体机产品介绍.doc
- IE设置及office控件安装.doc
- 脑机接口技术2025临床转化过程中的国际合作与交流平台建设报告.docx
- 2025年零售电商行业大数据在用户画像构建中的应用报告.docx
- 2025年语言翻译教育平台市场潜力与合作伙伴关系建立.docx
- 2025年语言翻译教育平台师资培训与课程体系构建.docx
- 2025年语言翻译教育平台市场拓展与合作伙伴关系建立.docx
- 金融机构2025年风险管理数字化转型中的风险管理云计算解决方案研究报告.docx
- 2025年大型商业街区改造工程社会稳定风险评估与城市形象塑造报告.docx
- 特色康养小镇项目2025年养老养生产业技术创新与发展趋势.docx
- 探究2025年康复医疗器械市场增长动力与产品创新趋势研究报告.docx
- 物联网设备安全隐患深度分析及2025年防护策略研究报告.docx
文档评论(0)