当前位置: 首页 > news >正文

中国购物网站排行榜asp.net做的小网站

中国购物网站排行榜,asp.net做的小网站,湖人最新消息,品牌建设ppt变量初始值为A#xff0c;修改成B,通过AtomicReference的compareAndSet去改变。就会先比较原来的值是否为A#xff0c;如果为A则修改成功#xff0c;否则修改失败。 但是如果在这个过程中#xff0c;A变成D然后又变成A, 那么再调用compareAndSet去改变也能修改成功B。这个…变量初始值为A修改成B,通过AtomicReference的compareAndSet去改变。就会先比较原来的值是否为A如果为A则修改成功否则修改失败。 但是如果在这个过程中A变成D然后又变成A, 那么再调用compareAndSet去改变也能修改成功B。这个过程中A-D-A,程序是感知不到的。 Slf4j public class ABADemo {static AtomicReferenceString atomicReference new AtomicReference(A);public static void main(String[] args) {String prev atomicReference.get();//中间A-B-Aother();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}atomicReference.compareAndSet(prev, C);log.info(atomicReference{}, atomicReference.get());}public static void other() {new Thread(() - {atomicReference.compareAndSet(atomicReference.get(), B);log.info(atomicReference{}, atomicReference.get());}, t1).start();try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}new Thread(() - {atomicReference.compareAndSet(atomicReference.get(), A);log.info(atomicReference{}, atomicReference.get());}, t2).start();} } 上面的代码主线程仅能判断共享变量的值是否与最初的A是否相同不同感知这种从A变成了B又变成了A的情景。 需求 如果主线程希望只要有其他线程动过这个共享变量那么自己cas操作就算失败这时比较值是不够的需要加入版本号。 谁做了修改让这个版本号加一。 AtomicStampedReference  时间戳或者版本号 Slf4j public class ABADemo {//第一个此参数是值第二个参数是版本号static AtomicStampedReferenceString atomicReference new AtomicStampedReference(A, 1);public static void main(String[] args) {String prev atomicReference.getReference();//版本号int stamp atomicReference.getStamp();//中间A-B-Aother();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}//旧的值新的值旧的版本号新的版本号1boolean res atomicReference.compareAndSet(prev, C, stamp, stamp 1);log.info(更新结果{},atomicReference{}, res, atomicReference.getReference());}public static void other() {new Thread(() - {//获取当前数据的版本号int stamp atomicReference.getStamp();boolean res atomicReference.compareAndSet(atomicReference.getReference(), B, stamp, stamp1);log.info(更新结果{},atomicReference{}, res, atomicReference.getReference());}, t1).start();try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}new Thread(() - {//获取当前数据的版本号int stamp atomicReference.getStamp();boolean res atomicReference.compareAndSet(atomicReference.getReference(), A, stamp, stamp1);log.info(更新结果{},atomicReference{}, res, atomicReference.getReference());}, t2).start();} } 通过AtomicStampedReference的版本号可以知道数据改了多少次。但是有时候我们不关心数据改了多少次只是想知道数据中间有没有改变过。所以就可以使用AtomicMarkableReference。 Slf4j public class Test01 {public static void main(String[] args) {GarbageBag garbageBag new GarbageBag(装满了垃圾);//第二个参数作为一个标记true表示垃圾袋满了AtomicMarkableReferenceGarbageBag atomicMarkableReference new AtomicMarkableReference(garbageBag, true);log.info(start....);GarbageBag prev atomicMarkableReference.getReference();log.info(prev{}, prev);//保洁阿姨去换了空垃圾袋new Thread(() - {boolean res atomicMarkableReference.compareAndSet(prev, new GarbageBag(空垃圾袋), true, false);log.info(res{}, garbageBag{}, res, atomicMarkableReference.getReference());}, 保洁阿姨).start();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}//换空垃圾袋失败因为保洁阿姨已经换了,标记为false,垃圾袋空了log.info(换一个新的垃圾袋);boolean res atomicMarkableReference.compareAndSet(prev, new GarbageBag(空垃圾袋), true, false);log.info(res{}, garbageBag{}, res, atomicMarkableReference.getReference());} }class GarbageBag {private String desc;public GarbageBag(String desc) {this.desc desc;}public void setDesc(String desc) {this.desc desc;}Overridepublic String toString() {return super.toString()----desc;} }
http://www.pierceye.com/news/12699/

相关文章:

  • 网站建设对应的岗位做app还是做网站
  • 什么情况下网站需要备案游戏设计
  • 专门做有机食品的网站百度浏览器打开
  • 风景旅游网站建设的设计思路wordpress 标签输出
  • 搭建网站官网建设银行网站
  • 网站上添加图片的原则页面设计脚怎么设计
  • 企业网站更新频率网站首页布局分析
  • 哪些方法可以建设网站wordpress花园教程
  • 金寨建设工程质量监督站网站wordpress 又拍云 缓存
  • 动画制作公司排名杭州优化外包公司排名
  • 网站别人能打开我打不开网络运维个人工作总结
  • 常州建设网站公司网站石家庄开发网站
  • 在服务器做网站网站空间不支持php
  • php违章网站开发h5页面制作网站官网
  • 学校校园网站建设必要性中国网页设计欣赏
  • 设置网站软件开发工具的基础
  • 北京网站设计公司yy成都柚米科技15外贸网站建设和seo
  • 网监备案网站更换域名郑州建设网站推广公司
  • 做网站好的网站建设公司排名免费信息发布网有哪些
  • 投诉做单骗子网站oa系统平台
  • 建设网站怎么创建数据库互联网公司包括
  • 专业网站建设公司兴田德润怎么样网站建设管理工作情况的通报
  • 做算命网站挣钱么wordpress开启cdn
  • 广州建网站的公司wordpress做出影视网站
  • 东莞网站营销公司商家联盟会员管理系统
  • 网站建设与运营课程企业网站功能包括
  • 阿里云云主机做网站wordpress本地评论插件
  • 杨园建设社区网站wordpress建商城平台
  • 深圳网站建设易佰讯最专业的企业营销型网站建设公司
  • 高端建网站轻定制网站建设