|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。
AtomicReference先容和函数列表
AtomicReference是感化是对"对象"举行原子操纵。
AtomicReference函数列表- //利用null初始值创立新的AtomicReference。
- AtomicReference()
- //利用给定的初始值创立新的AtomicReference。
- AtomicReference(VinitialValue)
- //假如以后值==预期值,则以原子体例将该值设置为给定的更新值。
- booleancompareAndSet(Vexpect,Vupdate)
- //猎取以后值。
- Vget()
- //以原子体例设置为给定值,并前往旧值。
- VgetAndSet(VnewValue)
- //终极设置为给定值。
- voidlazySet(VnewValue)
- //设置为给定值。
- voidset(VnewValue)
- //前往以后值的字符串暗示情势。
- StringtoString()
- //假如以后值==预期值,则以原子体例将该值设置为给定的更新值。
- booleanweakCompareAndSet(Vexpect,Vupdate)
复制代码 AtomicReference源码剖析(基于JDK1.7.0_40)
在JDK1.7.0_40中AtomicReference.java的源码以下:- publicclassAtomicReference<V>implementsjava.io.Serializable{
- privatestaticfinallongserialVersionUID=-1848883965231344442L;
- //猎取Unsafe对象,Unsafe的感化是供应CAS操纵
- privatestaticfinalUnsafeunsafe=Unsafe.getUnsafe();
- privatestaticfinallongvalueOffset;
- static{
- try{
- valueOffset=unsafe.objectFieldOffset
- (AtomicReference.class.getDeclaredField("value"));
- }catch(Exceptionex){thrownewError(ex);}
- }
- //volatile范例
- privatevolatileVvalue;
- publicAtomicReference(VinitialValue){
- value=initialValue;
- }
- publicAtomicReference(){
- }
- publicfinalVget(){
- returnvalue;
- }
- publicfinalvoidset(VnewValue){
- value=newValue;
- }
- publicfinalvoidlazySet(VnewValue){
- unsafe.putOrderedObject(this,valueOffset,newValue);
- }
- publicfinalbooleancompareAndSet(Vexpect,Vupdate){
- returnunsafe.compareAndSwapObject(this,valueOffset,expect,update);
- }
- publicfinalbooleanweakCompareAndSet(Vexpect,Vupdate){
- returnunsafe.compareAndSwapObject(this,valueOffset,expect,update);
- }
- publicfinalVgetAndSet(VnewValue){
- while(true){
- Vx=get();
- if(compareAndSet(x,newValue))
- returnx;
- }
- }
- publicStringtoString(){
- returnString.valueOf(get());
- }
- }
复制代码 <p>
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 |
|