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

您的网站空间已过期怎样在百度上免费做广告

您的网站空间已过期,怎样在百度上免费做广告,做旅游平台网站找哪家好,北湖区网站建设服务商volatile有三个特性#xff1a; #xff08;1#xff09;可见性 #xff08;2#xff09;不保证原子性 #xff08;3#xff09;禁止指令重排 下面我们一一介绍 #xff08;一#xff09;可见性 volatile的可见性是说共享变量只要修改#xff0c;就可以被其他线…volatile有三个特性 1可见性 2不保证原子性 3禁止指令重排 下面我们一一介绍 一可见性 volatile的可见性是说共享变量只要修改就可以被其他线程感知到这个是怎么做到的呢 这得从虚拟机的内存模型说起这里直接引用《深入理解java虚拟机》书中原话JAVA内存模型规定了所有的变量都存储在主内存中每条线程还有自己的工作内存线程的工作内存保存了被该线程使用的变量的主内存副本线程对变量的所有操作读取、赋值都必须在工作内存中进行而不是直接读写主内存中的数据。 所以对于多线程场景的共享变量值的传递是需要通过主内存进行。也就是线程A对共享变量tmp没有使用volatile修改后线程B不一定能马上感知到。需要等线程A中的工作内存同步到主内存中线程B才能感知到。而volatile则会保证变量只要修改就会马上同步到主内存中并且线程读取变量时也是会先从主内存中刷新变量值以此来保证了变量的可见性。 二不保证原子性 对于volatile变量虽然线程能马上看见它的值改变并不能保证它的运算操作是原子的比如 public class TestVolatile {public static volatile int count 0;public static CountDownLatch countDownLatch new CountDownLatch(5);public static void main(String[] args) {for (int i 0; i 5; i) {new Thread(() - {for (int j 0; j 10000; j) {count;}countDownLatch.countDown();}).start();}try {countDownLatch.await();} catch (InterruptedException e) {e.printStackTrace();}System.out.println(count: count);} } 上面这个例子执行后如果是原子性的那么count的值应该是50000。但实际远小于50000 因为i本身就不是原子步骤它实际上是ii1.它需要先获取i的值然后再加1然后再赋值给i。两个线程A,B同时获取i的值为3然后线程A将其加1后的值4赋值给主内存。线程B这时也完成了计算同样赋值给主内存也是4。这是计算结果就少了1。 3禁止指令重排 指令重排是编译器在运行时在保证单个线程内结果不变的情况下基于性能优化考虑对指令进行重新排序 这个先举个例子 public static boolean initFlag false;public static void main(String[] args) {new Thread(() - {// 初始化完成后再设置标志位另一个线程感知到标志位改变后开始执行它的业务doSomeInit();initFlag true;}).start();new Thread(() - {while (!initFlag) {// 还没初始化则等待try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}// 认为初始化已经完成执行它的业务}).start();} 上面这段代码并不能实际运行出我们想要的效果因为指令重排是虚拟机编译器内部逻辑没想到一个确实可行的例子能够触发指令重排只是简单代替我们经常可能会出现的业务场景一个线程等待另一个线程完成初始化逻辑后才开始启动自己的业务逻辑。上面initFlag没有标识volatile。那么initFlag赋值操作可能会因为指令重排先于doSomeInit初始化逻辑先完成这样就可能导致我们的业务功能有问题。因为对于单个线程来说虚拟机认为initFlag提前执行并没有改变所在线程的结果。所以这里需要给initFlag加上volatile标识告诉虚拟机这里不能进行指令重排在initFlag操作之前的代码也必须先于initFlag操作之前执行
http://www.hkea.cn/news/14323534/

相关文章:

  • 网站模板 html江苏建设人才考试网二建
  • 设计外贸网站公司app开发
  • 吉林省城乡建设部网站建设网站的
  • 网站联系方式设置要求互联网产品推广
  • 发布项目信息的平台企业网站seo网址
  • 电子商务网站建设的课程论文长沙推广专员招聘
  • 网站建设采用thinkphp框架的优势现在哪个公司家庭网络好用
  • 美橙互联 送网站wifi网络优化软件
  • 品牌网站建设小蝌蚪wordpress多站点分别部署
  • 哪个网站可以找做软件兼职的黑龙江信息流广告视频
  • 怎样做家普网站如何做网站竞品分析
  • 网站建设能用手机制作吗专门做投标书的网站
  • 施工企业总工程师述职报告关键词优化排名工具
  • 长春哪里有做网站的编程序可以做网站吗
  • 自建网站主题及策划南宁市住房城乡建设厅网站
  • 黄江做网站阿里巴巴网站工作流程
  • 苏州网站建设设计html5网站建设中
  • 网站源码多少钱团关系转接网站建设
  • 做网站4000-262-263wordpress如何设置语言
  • 公司网页网站建设+ppt模板下载互联网技术的概念
  • 建设销售网站的意义做网站更新维护工资高吗
  • 网网站建设公司ip网站架设
  • 综合性外贸网站建设模板页
  • 聚美优品网站建设目的珠海网站建设方案维护
  • 网站建设费 项目经费影视公司组织架构
  • 专门做预言的网站app设计理念怎么写
  • 网站开发与设计实训报告心得长沙做网站微联讯点不错
  • 一条龙网站建设哪家专业wordpress 时区插件
  • 专门给小公司做网站中企动力做销售的经历
  • 网站建设翻译插件wordpress 4.9 php7