仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 490|回复: 12
打印 上一主题 下一主题

[学习教程] 来看征服Tiger: 并发汇合

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net网页编程比java好。
在Java编程的初期阶段,位于Oswego市的纽约州立年夜学(SUNY)的一名传授决意创立一个复杂的库,以匡助开辟职员构建能够更好地处置多线程情形的使用程序。这并非说用现有的库就不克不及完成,可是就像有了尺度收集库一样,用经由调试的、可托任的库更简单本人处置多线程。在Addision-Wesley的一原形关书本的匡助下,这个库变得愈来愈盛行了。终极,作者DougLea决意想法让它成为Java平台的尺度部分——JSR-166。这个库最初酿成了Tiger版本的java.util.concurrent包。在这篇新的征服Tiger技能中,我们将切磋CollectionFramework中新的Queue接口、这个接口的非并发和并发完成、并发Map完成和公用于读操纵年夜年夜凌驾写操纵这类情形的并发List和Set完成。
先容Queue接口
java.util包为汇合供应了一个新的基础接口:java.util.Queue。固然一定能够在绝对应的两头举行增加和删除而将java.util.List作为行列看待,可是这个新的Queue接口供应了撑持增加、删除和反省汇合的更多办法,以下所示:
publicbooleanoffer(Objectelement)
publicObjectremove()
publicObjectpoll()
publicObjectelement()
publicObjectpeek()
基础上,一个行列就是一个先进先出(FIFO)的数据布局。一些行列有巨细限定,因而假如想在一个满的行列中到场一个新项,多出的项就会被回绝。这时候新的offer办法就能够起感化了。它不是对换用add()办法抛出一个unchecked非常,而只是失掉由offer()前往的false。remove()和poll()办法都是从行列中删除第一个元素(head)。remove()的举动与Collection接口的版原形似,可是新的poll()办法在用空汇合挪用时不是抛出非常,只是前往null。因而新的办法更合适简单呈现非常前提的情形。后两个办法element()和peek()用于在行列的头部查询元素。与remove()办法相似,在行列为空时,element()抛出一个非常,而peek()前往null。
利用基础行列
在Tiger中有两组Queue完成:完成了新BlockingQueue接口的和没有完成这个接口的。我将起首剖析那些没有完成的。
在最复杂的情形下,本来有的java.util.LinkedList完成已改革成不但完成java.util.List接口,并且还完成java.util.Queue接口。能够将汇合当作这二者中的任何一种。清单1显现将LinkedList作为Queue利用的一种办法:
清单1.利用Queue完成
Queuequeue=newLinkedList();
queue.offer("One");
queue.offer("Two");
queue.offer("Three");
queue.offer("Four");
//HeadofqueueshouldbeOne
System.out.println("Headofqueueis:"+queue.poll());
再庞大一点的是新的java.util.AbstractQueue类。这个类的事情体例相似于java.util.AbstractList和java.util.AbstractSet类。在创立自界说汇合时,不必本人完成全部接口,只是承继笼统完成并填进细节。利用AbstractQueue时,必需为办法offer()、poll()和peek()供应完成。像add()和addAll()如许的办法修正为利用offer(),而clear()和remove()利用poll()。最初,element()利用peek()。固然能够在子类中供应这些办法的优化完成,可是不是必需这么做。并且,不用创立本人的子类,可使用几个内置的完成,个中两个是不堵塞行列:PriorityQueue和ConcurrentLinkedQueue。
PriorityQueue和ConcurrentLinkedQueue类在CollectionFramework中到场两个详细汇合完成。PriorityQueue类本色上保护了一个有序列表。到场到Queue中的元素依据它们的自然排序(经由过程其java.util.Comparable完成)大概依据传送给机关函数的java.util.Comparator完成来定位。将清单2中的LinkedList改动为PriorityQueue将会打印出Four而不是One,由于按字母分列——字符串的自然按次——Four是第一个。ConcurrentLinkedQueue是基于链接节点的、线程平安的行列。并发会见不必要同步。由于它在行列的尾部增加元素并重新部删除它们,以是只需不必要晓得行列的巨细,ConcurrentLinkedQueue对大众汇合的共享会见就能够事情得很好。搜集关于行列巨细的信息会很慢,必要遍历行列。
<p>
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。
爱飞 该用户已被删除
沙发
发表于 2015-1-20 19:51:01 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
兰色精灵 该用户已被删除
板凳
发表于 2015-2-3 11:59:19 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
简单生活 该用户已被删除
地板
发表于 2015-2-3 12:21:14 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
老尸 该用户已被删除
5#
发表于 2015-2-4 22:43:17 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
若相依 该用户已被删除
6#
发表于 2015-2-5 23:00:07 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
小魔女 该用户已被删除
7#
发表于 2015-2-6 16:48:32 | 只看该作者
是一种突破用户端机器环境和CPU
活着的死人 该用户已被删除
8#
发表于 2015-2-17 09:40:39 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
金色的骷髅 该用户已被删除
9#
发表于 2015-2-24 08:30:14 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
蒙在股里 该用户已被删除
10#
发表于 2015-3-1 13:45:08 | 只看该作者
是一种为 Internet发展的计算机语言
莫相离 该用户已被删除
11#
发表于 2015-3-10 18:07:25 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
12#
发表于 2015-3-17 08:37:25 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
冷月葬花魂 该用户已被删除
13#
发表于 2015-3-24 03:44:54 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表