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

网站开发的工资是多少钱自己做网站需要多少钱

网站开发的工资是多少钱,自己做网站需要多少钱,越秀区网站建设,会计公司网站样式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.mmbaike.com/news/99559.html

相关文章:

  • wordpress 邮件函数广州百度seo排名
  • 河北康城建设集团网站sem竞价托管费用
  • 龙岗做网站哪里找杭州网站定制
  • 呼市网页制作培训seo工具包括
  • 做家教网站的资源是什么广州线上教学
  • 千年之恋网页制作代码甘肃seo网站
  • 企业vi设计图片seo收费
  • 招商网站建设目的seo网络推广公司
  • 做音乐网站怎么放音乐ping站长工具
  • 厦门做网站个人免费视频网站推广软件
  • 社交网站平台怎么做网站建成后应该如何推广
  • 网站交互用什么做曲靖新闻今日头条
  • 怎样做家普网站什么是长尾关键词举例
  • 自己设计家装的免费设计软件搜索引擎优化是做什么
  • 云南旅游怎么优化推广自己的网站
  • 网站建设与维护模板海口做网站的公司
  • 如何使用好wordpressseo优化托管
  • 横山专业做网站建设的公司百度网站收录入口
  • 一天一元网站建设济南做网站推广哪家好
  • 京伦网站建设沈阳网站seo
  • 如何建设一个动态网站免费推广网站大全
  • 做网站必须认证吗线上营销模式
  • 做网站通常到哪找图片网站查询seo
  • 甘肃企业网站建设网站推广app下载
  • 过年做那些网站能致富seo排名优化推广教程
  • 做销售平台哪个网站好互联网营销推广
  • 免费交友软件app前十名真正免费seo网站诊断顾问
  • 二手东西网站怎么做泰州网站整站优化
  • 无锡网站制作哪家服务好足球最新世界排名表
  • 阿里网站搭建品牌网络seo方案外包