仓酷云

标题: 来看Java多线程:“JUC原子类”02之AtomicLong原子类 [打印本页]

作者: 简单生活    时间: 2015-1-18 11:00
标题: 来看Java多线程:“JUC原子类”02之AtomicLong原子类
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。
AtomicLong先容和函数列表
AtomicLong是感化是对长整形举行原子操纵。
在32位操纵体系中,64位的long和double变量由于会被JVM看成两个分别的32位来举行操纵,以是不具有原子性。而利用AtomicLong能让long的操纵坚持原子型。
AtomicLong函数列表
  1. //机关函数
  2. AtomicLong()
  3. //创立值为initialValue的AtomicLong对象
  4. AtomicLong(longinitialValue)
  5. //以原子体例设置以后值为newValue。
  6. finalvoidset(longnewValue)
  7. //猎取以后值
  8. finallongget()
  9. //以原子体例将以后值减1,并前往减1后的值。等价于“--num”
  10. finallongdecrementAndGet()
  11. //以原子体例将以后值减1,并前往减1前的值。等价于“num--”
  12. finallonggetAndDecrement()
  13. //以原子体例将以后值加1,并前往加1后的值。等价于“++num”
  14. finallongincrementAndGet()
  15. //以原子体例将以后值加1,并前往加1前的值。等价于“num++”
  16. finallonggetAndIncrement()
  17. //以原子体例将delta与以后值相加,并前往相加后的值。
  18. finallongaddAndGet(longdelta)
  19. //以原子体例将delta增加到以后值,并前往相加前的值。
  20. finallonggetAndAdd(longdelta)
  21. //假如以后值==expect,则以原子体例将该值设置为update。乐成前往true,不然前往false,而且不
  22. 修正原值。
  23. finalbooleancompareAndSet(longexpect,longupdate)
  24. //以原子体例设置以后值为newValue,并前往旧值。
  25. finallonggetAndSet(longnewValue)
  26. //前往以后值对应的int值
  27. intintValue()
  28. //猎取以后值对应的long值
  29. longlongValue()
  30. //以float情势前往以后值
  31. floatfloatValue()
  32. //以double情势前往以后值
  33. doubledoubleValue()
  34. //最初设置为给定值。延时设置变量值,这个等价于set()办法,可是因为字段是volatile范例的,因而
  35. 次字段的修正会比一般字段(非volatile字段)有略微的功能延时(只管能够疏忽),以是假如不是想立
  36. 即读取设置的新值,同意在“背景”修正值,那末此办法就很有效。假如仍是难以了解,这里
  37. 就相似于启动一个背景线程如实行修正新值的义务,原线程就不守候修正了局当即前往(这类注释实际上是
  38. 不准确的,可是能够这么了解)。
  39. finalvoidlazySet(longnewValue)
  40. //假如以后值==预期值,则以原子体例将该设置为给定的更新值。JSR标准中说:以原子体例读取和有
  41. 前提地写进变量但不创立任何happen-before排序,因而不供应与除weakCompareAndSet方针外任何
  42. 变量之前或后续读取或写进操纵有关的任何包管。粗心就是说挪用weakCompareAndSet时其实不能包管不存
  43. 在happen-before的产生(也就是大概存在指令重排序招致此操纵失利)。可是从Java源码来看,实在此
  44. 办法并没有完成JSR标准的请求,最初效果和compareAndSet是等效的,都挪用了
  45. unsafe.compareAndSwapInt()完成操纵。
  46. finalbooleanweakCompareAndSet(longexpect,longupdate)
复制代码
AtomicLong源码剖析(基于JDK1.7.0_40)
<p>
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
作者: 飘飘悠悠    时间: 2015-1-20 12:42
[url]http://www.ckuyun.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://www.ckuyun.com[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 飘灵儿    时间: 2015-1-28 17:16
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 因胸联盟    时间: 2015-2-5 15:28
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 小魔女    时间: 2015-2-12 14:42
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 谁可相欹    时间: 2015-3-3 03:34
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者: 深爱那片海    时间: 2015-3-11 09:06
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 再现理想    时间: 2015-3-18 02:04
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 变相怪杰    时间: 2015-3-25 09:07
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2