- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小议Tiger类库的多线程支持
http :/// mailto:moyingzz@
小议Tiger 类库的多线程支持
撰文 / 莫映
引介
就在笔者开始撰写本文的前几日,令众Java Fans 们翘首良久的RC 版Tiger 终于出笼了,这
也意味着Tiger 距离真正的Final Release 已为时不远,相信届时的“Java World”一定是一派
欢腾喜庆的景象。不过在万众瞩目的那一刻到来之前,我们不妨先对这个Tiger (RC )浮光
掠影一番,以解心中之痒。
对于Tiger 的诸多新鲜特性,很早以前就已开始见诸网 ,个中要旨相信大家已然耳熟能详。
而本文所选议题则是Tiger 在类库方面的一大改进,这也是Java 程序员时常面对的一大难题
——多线程应用。
1
J2SE 5 类库中对并发程序的支持,依据官方网站的介绍 ,被称作 “Concurrency Utilities ”。
此一部分主要引入了一个名为j ava.util.concurrent 的包,它来自于JCP 的JSR 166。说到这里
不得不提一下JSR 166 的掌舵人Doug Lea,正是他那个广泛流传于Java 圈子里的多线程库
util.concurrent ,以及那本颇具影响力的《Concurrent Programming in Java 》,使得Java 在多线
程应用领域最终走上了标准化道路,并成为Tiger 的一大亮点。由于多线程历来有着广泛应
用,也有着广泛的使用群体,因此 不夸张地说,新的J2SE 中对并发机制的支持,也许是
目前为止除去语言层面 (比如泛型)的最大改进。
下面就让我们对Concurrency Utilities 的主要部分逐一考察一番。同时,我们还将对比.NET
Framework 。由于.NET Framework 2.0 对于多线程,在大的框架方面的改进不是很大,因此
2
这里所提及的内容大多也可以在1.1 版本中找到 。
Collection 部分
j ava.util.concurrent 包对原来的Collection Framework 做了不少补充。主要体现在以下几个方
面:
① 新增Queue 接口。该接口增加了一组额外的插入、提取、访问操作:offer,poll,peek。
与以往容器操作有所不同的是,它们在遇到错误时不会抛出异常,而代之以返回表征错误的
结果值。
② 新增 AbstractQueue 和两个直接派生于它的 non-blocking Queue 具现类。抽象类
AbstractQueue 实现自Queue 接口,内含了构建Queue 的一些缺省操作。自它派生,你只需
做一些简单的覆盖工作即可。因为是non-blocking ,也就意味着对容器的并发访问无需同步,
1 见New Features and Enhancements J2SE 5 :http :///j2se/ 1.5.0/docs/relnotes/features.html
2 详情见API Changes between versions of the .NET Framework :
http :///team/upgrade/apiChanges.aspx
1
http :/// mailto:moyingzz@
因此是高效率的,同时也是线程安全的。它们分别是:ConcurrentLinkedQueue
PriorityQueue 。前者是一个基于链表结构的Queue ;后者则维护了一个优先级队列,元素依
自然序排列,或是由传入构造器的j ava.util.Comparator 指定。
③ 新增BlockingQueue 接口和五个实现了该接口并派生自AbstractQueue 的具现类。
BlockingQueue 对比于前述的non-blocking,定义了对容器的同步操作。五个具现类依次是:
ArrayBlockingQueue , LinkedBlockingQueue , PriorityBlockingQueue ,
您可能关注的文档
最近下载
- 人乳头瘤病毒感染护理.pptx VIP
- 压疮品管圈成果汇报PPT幻灯片.ppt VIP
- 车险承保方案.pdf VIP
- 中华民族共同体概论教案合集(第一讲-第十六讲)附《中华民族共同体概论》课程大纲.doc VIP
- “中华民族共同体概论”课程教学与建设关键问题探讨.docx VIP
- 诸侯纷争与变法运动【课件】.pptx VIP
- 中国高血压防治指南(2024年修订版)_中国高血压防治指南修订委员会__.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学.pdf VIP
- 民事诉讼法中案外第三人对执行的异议之诉.pdf VIP
- “扬子石化杯”2024年第38届中国化学奥林匹克(江苏赛区)初赛化学试卷含答案.pdf VIP
文档评论(0)