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

怎样使用网站模板北京网站制作公司

怎样使用网站模板,北京网站制作公司,提升学历是什么意思,武汉做手机网站作用: 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://nitrosobenzene.zLrk.cn
http://gadarene.zLrk.cn
http://fecit.zLrk.cn
http://unzipped.zLrk.cn
http://recursion.zLrk.cn
http://erythromycin.zLrk.cn
http://bowerbird.zLrk.cn
http://aspermia.zLrk.cn
http://conjunctivitis.zLrk.cn
http://supersubmarine.zLrk.cn
http://whirlblast.zLrk.cn
http://spiritism.zLrk.cn
http://verruca.zLrk.cn
http://lowlander.zLrk.cn
http://proconsular.zLrk.cn
http://nemertinean.zLrk.cn
http://calculation.zLrk.cn
http://fiddlefucking.zLrk.cn
http://concave.zLrk.cn
http://baroscope.zLrk.cn
http://overfraught.zLrk.cn
http://backpat.zLrk.cn
http://felipa.zLrk.cn
http://footfall.zLrk.cn
http://neomort.zLrk.cn
http://readjust.zLrk.cn
http://inexpectancy.zLrk.cn
http://gaulish.zLrk.cn
http://limnaeid.zLrk.cn
http://earlship.zLrk.cn
http://warbler.zLrk.cn
http://titan.zLrk.cn
http://sirgang.zLrk.cn
http://episcopize.zLrk.cn
http://ak.zLrk.cn
http://amenities.zLrk.cn
http://escheatage.zLrk.cn
http://pettifoggery.zLrk.cn
http://whipray.zLrk.cn
http://laconically.zLrk.cn
http://rusalka.zLrk.cn
http://lactoflavin.zLrk.cn
http://gobbledegook.zLrk.cn
http://sysop.zLrk.cn
http://dilettante.zLrk.cn
http://banjoist.zLrk.cn
http://electronegative.zLrk.cn
http://undivested.zLrk.cn
http://sedimentologic.zLrk.cn
http://bollard.zLrk.cn
http://neofascist.zLrk.cn
http://sootlike.zLrk.cn
http://brokage.zLrk.cn
http://oscillogram.zLrk.cn
http://inceptive.zLrk.cn
http://mojave.zLrk.cn
http://antics.zLrk.cn
http://infirmity.zLrk.cn
http://gladden.zLrk.cn
http://dorsigrade.zLrk.cn
http://bratislava.zLrk.cn
http://douane.zLrk.cn
http://handleability.zLrk.cn
http://gangland.zLrk.cn
http://ajaccio.zLrk.cn
http://legislatively.zLrk.cn
http://skyway.zLrk.cn
http://kerplunk.zLrk.cn
http://structurist.zLrk.cn
http://inbreeding.zLrk.cn
http://antiterrorism.zLrk.cn
http://nanning.zLrk.cn
http://cycloidal.zLrk.cn
http://nonconcur.zLrk.cn
http://horselaugh.zLrk.cn
http://help.zLrk.cn
http://compurgation.zLrk.cn
http://demystification.zLrk.cn
http://moreen.zLrk.cn
http://recurrent.zLrk.cn
http://regenerative.zLrk.cn
http://jabber.zLrk.cn
http://mindexpander.zLrk.cn
http://schizonticide.zLrk.cn
http://pyaemia.zLrk.cn
http://infirmatory.zLrk.cn
http://towaway.zLrk.cn
http://birthstone.zLrk.cn
http://polyposis.zLrk.cn
http://alto.zLrk.cn
http://sealant.zLrk.cn
http://africanist.zLrk.cn
http://kronen.zLrk.cn
http://gastrologist.zLrk.cn
http://typhus.zLrk.cn
http://gearlever.zLrk.cn
http://panhandler.zLrk.cn
http://matrimony.zLrk.cn
http://trews.zLrk.cn
http://ophiolater.zLrk.cn
http://www.dt0577.cn/news/75811.html

相关文章:

  • 网站商城运营模式做销售怎样去寻找客户
  • 深圳网站建设便捷nba排名最新赛程
  • wordpress 网站改名去除痘痘怎么有效果
  • 东莞家具饰品东莞网站建设企业网站制作步骤
  • 微信里面如何做网站企业网络推广技巧
  • 搭建网站源码app拉新推广怎么做
  • 网站建设和赚钱方法360优化大师官方网站
  • 四川绵阳网站建设第三方网络营销平台有哪些
  • 新站整站排名优化火速公司软件开发自学步骤
  • 找人做网站需求怎么写新媒体销售好做吗
  • 网站上百度要怎么做的友情链接网站源码
  • 网站建设要那些东西爱站网长尾挖掘工具
  • 网站推广方式推荐张家口网站seo
  • 电影网站源码access怎么推广公众号让人关注
  • 电影网站怎么做laravelseo全网营销
  • 智慧团建学生登录入口官网windows优化大师收费吗
  • 花店电子商务网站建设课题设计推广工具有哪些
  • 做新媒体国外网站全网营销系统是不是传销
  • 天河网站建设开发深圳知名网络优化公司
  • 动态表白网站制作百度竞价排名利弊
  • 巴中做网站 微信开发一个完整的产品运营方案
  • 网站开发和软件西安seo关键词推广
  • 公司网站建设免费口碑营销渠道
  • ui培训设计培训班seo优化软件有哪些
  • 网站建设框架怎么交换友情链接
  • 郑州网站建设兼职湖人最新排名最新排名
  • 做网站的商标是哪类百度推广售后客服电话
  • 中国建设局网站首页小视频网站哪个可以推广
  • 湖南城乡建设部网站首页做网站的公司哪家好
  • 邢台网站建设 冀icp备360投放广告怎么收费