- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java.util.concurrent包的并发处理
?浅谈java.util.concurrent包的并发处理收藏
新一篇:?国耻日-永远的1937年12月13日,悼念反人类的南京大屠杀七十周年
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带来的危害等诸多因素,往往会采用一些较为复杂的安全策略,加重了程序员的开发负担.万幸的是,在JDK1.5出现之后,Sun大神终于为我们这些可怜的小程序员推出了java.util.concurrent工具包以简化并发完成。开发者们借助于此,将有效的减少竞争条件(race conditions)和死锁线程。concurrent包很好的解决了这些问题,为我们提供了更实用的并发程序模型。java.util.concurrent下主要的接口和类:Executor:具体Runnable任务的执行者。ExecutorService:一个线程池管理者,其实现类有多种,比如普通线程池,定时调度线程池ScheduledExecutorService等,我们能把一个Runnable,Callable提交到池中让其调度。Future:是与Runnable,Callable进行交互的接口,比如一个线程执行结束后取返回的结果等等,还提供了cancel终止线程。BlockingQueue:阻塞队列。下面我写一个简单的事例程序:FutureProxy.java
package?org.test.concurrent;/**?*//**?*?pTitle:?LoonFramework/p?*?pDescription:利用Future模式进行处理/p?*?pCopyright:?Copyright?(c)?2007/p?*?pCompany:?LoonFramework/p?*?@author?chenpeng???*?@email:ceponline@??*?@version?0.1?*/import?java.lang.reflect.InvocationHandler;import?java.lang.reflect.Method;import?java.lang.reflect.Proxy;import?java.util.concurrent.Callable;import?java.util.concurrent.ExecutorService;import?java.util.concurrent.Executors;import?java.util.concurrent.Future;import?java.util.concurrent.ThreadFactory;public?abstract?class?FutureProxyT?...{????private?final?class?CallableImpl?implements?CallableT?...{????????public?T?call()?throws?Exception?...{????????????return?FutureProxy.this.createInstance();????????}????}????private?static?class?InvocationHandlerImplT?implements?InvocationHandler?...{????????private?FutureT?future;????????????????private?volatile?T?instance;????????????????InvocationHandlerImpl(FutureT?future)...{????????????this.future?=?future;????????}????????????????public?Object?invoke(Object?proxy,?Method?method,?Object[]?args)????????????????throws?Throwable?...{????????????synchronized(this)...{????????????????if(this.future.isDone())...{????????????????????this.instance?=?this.future.get();????
您可能关注的文档
- Anttnff2008年园林及仿古建筑工程造价员模拟试2008.3.27卷.doc
- AP200ap300使用说明2003.doc
- Alzheimer’s Disease Prevention Initiative.ppt
- apache2的worker工作模式配置及MaxClients不足问题解决.doc
- AralditeAW2104-HW2934,金钱胶,爱牢达AB胶.pdf
- ARDEX STS8 超强抗张力瓷砖粘结剂施工工艺及安全施工措施.doc
- ARP请求详解.doc
- ARTIS-3维护保养规程.doc
- AS-MF09 灭火机器人套件安装指南V1.0.pdf
- ASIC对二三层处理理和三层数据流过程.pdf
文档评论(0)