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

苏州网站建设如何选择新seo排名点击软件

苏州网站建设如何选择,新seo排名点击软件,wordpress mobile api,123浏览器下载volatile关键字介绍 volatile 是一个关键字,用于修饰变量,表示该变量是易变的,即可能在任何时候被意外地改变。在多线程编程中,当多个线程同时访问同一个变量时,由于线程之间的交互和优化,可能会导致变量的…

volatile关键字介绍

volatile 是一个关键字,用于修饰变量,表示该变量是易变的,即可能在任何时候被意外地改变。在多线程编程中,当多个线程同时访问同一个变量时,由于线程之间的交互和优化,可能会导致变量的值不一致或出现意外的行为。使用 volatile 关键字可以告诉编译器和处理器,在访问该变量时需要遵循一定的规则,以确保变量的可见性和一致性。

具体来说,volatile 关键字有以下几个作用:

禁止编译器对该变量进行优化,确保每次访问都从内存中读取最新的值
②防止编译器对该变量进行重排序优化,保证指令执行的顺序与程序中的顺序一致。
③保证不同线程之间对该变量的访问顺序与程序中的顺序一致。
(volatile 关键字只能保证单个变量的可见性和一致性,并不能解决多个变量之间的原子性操作问题。在需要保证多个变量操作的原子性时,可以使用其他的同步机制,如锁或原子类。)

volatile关键字解决实际问题案例

#include <stdio.h>
#include <signal.h>
int flag = 0;
void handler(int sig)
{printf("chage flag 0 to 1\n");flag = 1;
}
int main()
{signal(2, handler);while(!flag);printf("process quit normal\n");return 0;
}

执行结果(和预期不一致):

chage flag 0 to 1
process quit normal
  1. 问题原因:不加volatile关键字时,编译时未发现flag被修改(因为修改flag的语句不在main函数内,不一定会被执行),所以对flag变量进行了优化,进程运行时将flag变量直接加载到cpu寄存器上。 打印flag的语句也是直接使用寄存器上的flag值,但是实际上在内存中flag的值已经被改变了,但再次打印flag的值依然为程序开始时加载到寄存器上的flag值。

  2. 解决方法:使用 volatile关键字修饰flag变量,禁止编译器对flag变量进行优化。

  3. volatile解决问题关键字原理图:
    在这里插入图片描述

http://www.dinnco.com/news/44946.html

相关文章:

  • 上哪个网站做forma和co百度seo网站在线诊断
  • 东营网站建设价格软文营销的定义
  • 厦门域名空间建网站网站怎么优化排名靠前
  • 做推广都有什么网站网奇seo培训官网
  • 苏州企业网页设计seo查询系统
  • 网站制作好以后怎么管理产品网络推广方式
  • 北京网站关键词排名推广seo搜索引擎优化包邮
  • tint-k主题做企业网站谷歌网站
  • 创建网站的一般步骤网络推广公司哪家做得好
  • 免费视频素材网站哪个最好自助建站系统模板
  • wordpress注册账号专业网站优化培训
  • 海纳企业网站管理系统目前搜索引擎排名
  • 做网站标题头像如何联系百度人工客服电话
  • 灰色词网站seo富阳seo关键词优化
  • 中冶建设网站百度移动
  • 做网站的教程视频武汉大学人民医院
  • 合肥网站seo服务友情链接导航
  • 微信公众号推广网站短视频seo搜索优化
  • 网站运营如何做网络广告营销策划方案
  • 苏州高端网站建设咨询西安百度
  • 网站建设推广行业制作公司网页多少钱
  • 南昌网站建设行情免费建网站哪家好
  • wordpress腾讯云cdn网站seo优化皆宣徐州百都网络不错
  • 安徽美丽乡村建设网站跨境电商怎么开店铺
  • c 网站开发需要学什么软件有哪些seo点击排名工具
  • 网站建设制作设计seo优化湖北产品软文代写
  • 三水区网站建设门户网站制作
  • 三亚房产网站建设网站优化外包推荐
  • 垂直网站怎么建设加盟培训机构
  • 浙江响应式网站建设公司网络营销品牌推广公司