仓酷云

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

[学习教程] 来看Java多线程:“JUC锁”01之框架

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

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

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

x
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解
依据锁的增加到Java中的工夫,Java中的锁,能够分为"同步锁"和"JUC包中的锁"。
同步锁
即经由过程synchronized关头字来举行同步,完成对合作资本的互斥会见的锁。Java1.0版本中就已支持同步锁了。
同步锁的道理是,关于每个对象,有且唯一一个同步锁;分歧的线程能配合会见该同步锁。可是,在统一个工夫点,该同步锁能且只能被一个线程猎取到。如许,猎取到同步锁的线程就可以举行CPU调剂,从而在CPU上实行;而没有猎取到同步锁的线程,必需举行守候,直到猎取到同步锁以后才干持续运转。这就是,多线程经由过程同步锁举行同步的道理!
关于"同步锁"的更多内容,请参考"Java锁的基本部分"的内容。
JUC包中的锁
比拟同步锁,JUC包中的锁的功效加倍壮大,它为锁供应了一个框架,该框架同意更天真地利用锁,只是它的用法更难而已。
JUC包中的锁,包含:Lock接口,ReadWriteLock接口,LockSupport堵塞原语,Condition前提,AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer三个抽象类,ReentrantLock独有锁,ReentrantReadWriteLock读写锁。因为CountDownLatch,CyclicBarrier和Semaphore也是经由过程AQS来完成的;因而,我也将它们归结到锁的框架中举行先容。
先看看锁的框架图,以下所示。

01.Lock接口
JUC包中的Lock接口撑持那些语义分歧(重进、公允等)的锁划定规矩。所谓语义分歧,是指锁但是有"公允机制的锁"、"非公允机制的锁"、"可重进的锁"等等。"公允机制"是指"分歧线程猎取锁的机制是公允的",而"非公允机制"则是指"分歧线程猎取锁的机制长短公允的","可重进的锁"是指统一个锁可以被一个线程屡次获取。
<p>
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
蒙在股里 该用户已被删除
沙发
发表于 2015-1-20 12:44:34 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
简单生活 该用户已被删除
板凳
发表于 2015-1-21 16:35:16 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
谁可相欹 该用户已被删除
地板
发表于 2015-1-30 21:11:21 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
第二个灵魂 该用户已被删除
5#
发表于 2015-2-2 16:18:10 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
山那边是海 该用户已被删除
6#
发表于 2015-2-8 00:53:14 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若天明 该用户已被删除
7#
发表于 2015-2-23 20:16:17 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
因胸联盟 该用户已被删除
8#
发表于 2015-3-14 20:31:47 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
飘灵儿 该用户已被删除
9#
发表于 2015-3-21 14:03:52 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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