当前位置: 首页 > 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.zqtcl.cn/news/12699/

相关文章:

  • 服装设计资源网站蓝色系网站
  • 网站建设培训中心常州网站建设最易
  • 如何建设网站与域名公司邮箱满了怎么处理
  • 单页网站的营销教育网站解决方案
  • 北京企业建站线上推广有哪些平台效果好
  • 成都网站优化教程做网站过程视频
  • 民治做网站多少钱豫icp郑州网站建设
  • 网站推广计划方法网站布局规范
  • 网站推广有哪些手段大连网站建设与维护题库
  • 做机械配件的网站网站建设定制设计
  • 网站认证费怎么做分录创建公司网站过程
  • 链接网站制作对接标准做好门户网站建设
  • 青海餐饮网站建设前端可以做什么毕业设计
  • 建设部信息中心网站电子商务网站建设的目标是什么意思
  • 网站建设费属于无形资产吗怎样将wordpress导出
  • 农业网站怎么做网站自动更新文章
  • 怎样建设的网站好优化好排名免费推广方式有哪些
  • 小程序可以做企业网站手机浏览器网页加速器
  • php怎么建立站点欧美简约风格网站设计
  • 网页设计网站网站建设课程设计漯河做网站zrgu
  • 荆州网站设计女装wordpress
  • 设计师网站pintset浙江省建设厅信息港官网
  • 怎样做易支付网站佛山专业的做网站的
  • 免费发布推广信息的网站网站文章优化事项
  • 揭阳专业的网站建设价格如何做好宣传推广
  • 晋江市住房与城乡建设局网站互联网科技公司做网站哪家好
  • 东莞营销型网站国内做的好的帽子网站
  • 西部数码网站管理助手 没有d盘wordpress编辑无效
  • 唯品会网站建设目标描述建设一个网站的具体步骤
  • 广西容县建设网站视频制作软件免费版下载