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

婚纱摄影类网站制作小程序的软件

婚纱摄影类网站,制作小程序的软件,wordpress查找,做网站要求什么条件作用: 1.它用于修饰变量,告知编译器该变量的值可能会在程序的外部被改变,编译器不能对这个变量的访问进行优化。这是因为编译器通常会对代码进行优化,例如把变量的值缓存到寄存器中,但对于 volatile 变量,…

作用:

1.它用于修饰变量,告知编译器该变量的值可能会在程序的外部被改变,编译器不能对这个变量的访问进行优化。这是因为编译器通常会对代码进行优化,例如把变量的值缓存到寄存器中,但对于 volatile 变量,每次访问都要从内存中读取,以确保获取到最新的值。同时, volatile 还能防止编译器对涉及该变量的操作进行指令重排序。

#include <iostream>
#include <thread>
#include <chrono>
// 共享的volatile变量
volatile bool flag = false;
void waitForFlag() {
while (!flag) {
// 这里每次都会从内存读取flag的值,因为它是volatile的
}
std::cout << "Flag is set to true." << std::endl;
}
int main() {
std::thread t(waitForFlag);
std::this_thread::sleep_for(std::chrono::seconds(2));
flag = true;
t.join();
return 0;
}

在这个例子中, flag 变量被声明为 volatile 。子线程中的 while 循环会一直检查 flag 的值,直到它变为 true 。因为 flag 是 volatile ,编译器不会对 while 循环中 flag 的读取进行优化,会确保每次都从内存读取最新的值,这在多线程或硬件交互的场景下很重要。

2.volatile 可以用来防止编译器对指令进行重排序。在多线程或者中断处理的程序环境中,这种重排序可能会导致程序逻辑错误。 volatile 能够保证操作的顺序按照代码中的顺序执行,从而保证程序的正确性。

volatile 关键字与 const 关键字的区别:

1.const 关键字: 

const 修饰的变量是常量,在定义后不能被修改。它主要用于告诉编译器这个变量的值是固定的,编译器可以利用这一点进行一些优化,例如将变量的值替换到使用它的地方,而不用每次从内存读取。

2.volatile 关键字:

 volatile 修饰的变量是可变的,不过它强调变量的值可能会被程序外部(如硬件设备、其他线程或中断服务程序)改变。编译器不会对 volatile 变量进行优化,每次访问该变量时都会从内存中读取最新的值,并且不会对涉及该变量的操作进行指令重排序。

#include <iostream>
// const示例
void constExample() {
const int a = 10;
// a = 20;  // 这行代码会出错,因为不能修改const变量的值
std::cout << "The value of const variable a: " << a << std::endl;
}
// volatile示例
#include <thread>
#include <chrono>
volatile bool flag = false;
void volatileExample() {
std::thread t1( {
// 等待flag变为true
while (!flag) {
// 因为flag是volatile,每次循环都会从内存读取其最新值
}
std::cout << "Flag is now true." << std::endl;
});
// 主线程等待一段时间后将flag设为true
std::this_thread::sleep_for(std::chrono::seconds(2));
flag = true;
t1.join();
}
int main() {
constExample();
volatileExample();
return 0;
}

在这个示例中, constExample 函数展示了 const 变量不能被修改的特性。 volatileExample 函数通过一个简单的多线程场景展示了 volatile 变量的作用,线程 t1 会一直检查 volatile 变量 flag 的值,直到它被主线程修改为 true 。每次检查时,都会从内存读取 flag 的最新值。

http://www.hengruixuexiao.com/news/53605.html

相关文章:

  • 凡科做的网站手机版营销网页
  • 网站建设售后服务内容郑州网络营销与网站推广
  • 建设通网站武义巨合汪志刚seo查询seo
  • 建旅游网站多少钱百度百科查询
  • 如何查询网站接入商网站制作公司排行榜
  • wordpress支持空格键seo168小视频
  • 如何把网站推广出去东莞网络营销全网推广
  • 济南区网站开发软文代发
  • 做拍卖的网站有哪些软文媒体发稿平台
  • 做学校和企业对接的网站如何看待百度竞价排名
  • 网站建设与管理说课ppt重庆森林壁纸
  • 淘宝做的网站优化找做网站的公司
  • 北京网站百度推广百度热搜词排行榜
  • 施工企业在编制施工组织设计时江苏seo推广
  • 企业网站主页素描模板app拉新平台
  • url怎么做网站seo诊断报告
  • 郑州网站排名外包免费创建个人网页
  • wordpress语言包重庆seo务
  • 免费微信网站开发百度搜索服务
  • 宁波专业网站seo公司推广码怎么填
  • 专业的内蒙古网站建设大连最好的做网站的公司
  • 郑州网站关键字优化免费刷推广链接的网站
  • 做信息网站怎么样网站流量统计分析
  • 科技类公司名称大全旺道seo系统
  • 网站建设总结和体会宁波企业seo服务
  • 玉溪网站制作公司2021最火关键词
  • 做蛋糕网站网址搜索引擎
  • 能访问所有网站的浏览器百度搜索引擎的特点
  • o2o网站建设哪家好二级域名免费分发
  • 廊坊网站排名优化价格seo根据什么具体优化