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

网站建设知识网口碑seo推广公司

网站建设知识网,口碑seo推广公司,大气吉祥公司名字大全,wordpress 通过电子邮件发布在整个文档中,重入和线程安全用于标记类和函数,从而表明怎样在多线程应用中使用它们。 线程安全函数可以从多个线程同时调用,即使调用使用共享数据也是如此,因为对共享数据的所有引用都是序列化的。也可以从多个线程同时调用重入…

在整个文档中,重入和线程安全用于标记类和函数,从而表明怎样在多线程应用中使用它们。

  • 线程安全函数可以从多个线程同时调用,即使调用使用共享数据也是如此,因为对共享数据的所有引用都是序列化的。
  • 也可以从多个线程同时调用重函数,但前提是每个调用都使用自己的数据

以上可以得出结论: 线程安全函数始终是可重入的,但可重入函数并不总是线程安全的

通过扩展,如果可以从多个线程安全地调用一个类的成员函数,只要每个线程使用该类的不同实例,则该类就被称为可重入类。如果可以从多个线程安全地调用该类的成员函数,则该类是线程安全的,即使所有线程都使用该类的同一实例也是如此。

重入:

c++类通常是可重入的,因为它们只能访问自己的成员数据。任何线程都可以在可重入类的实例上调用成员函数,只要没有其他线程可以同时调用该类的同一实例上的成员函数。

例如:

class Counter
{
public:Counter() { n = 0; }void increment() { ++n; }void decrement() { --n; }int value() const { return n; }private:int n;
};

上面的类是可重入的,但这并不是线程安全的,当有多个线程同时修改类的一个成员变量,可能会

会产生多种结果 。因为++和--的操作并不是总是原子的(原子操作是指一个操作不会被其他线程中断)。它们会分为3个机械指令:

  • 在寄存器中加载变量的值
  • 递增或递减寄存器的值
  • 将寄存器的值存储回主存储器

当有多个线程同时加载变量的旧值,然后递增它们的寄存器,然后将其存储回去,最终它们会相互覆盖,变量只会递增一次。

线程安全:

显然,当有多个线程访问时,访问必须序列化,当有一个线程访问时,其他线程必须等待。

使用QMutex保护数据的访问。

class Counter
{
public:Counter() { n = 0; }void increment() { QMutexLocker locker(&mutex); ++n; }void decrement() { QMutexLocker locker(&mutex); --n; }int value() const { QMutexLocker locker(&mutex); return n; }private:mutable QMutex mutex;int n;
};

在构造函数中自动锁定互斥锁,在函数结束时调用析构函数时解锁互斥锁,锁定互斥锁可确保序列化来自不同线程的访问。数据成员mutex是用限定符mutable声明的,因为我们需要锁定和解锁 value()中的互斥锁,因为这是一个 const 函数。

参考文档:

Reentrancy and Thread-Safety | Qt 5.15


文章转载自:
http://dinncopunctate.bpmz.cn
http://dinncoincontrollable.bpmz.cn
http://dinncocatchup.bpmz.cn
http://dinncogorgeously.bpmz.cn
http://dinncopabouche.bpmz.cn
http://dinncothein.bpmz.cn
http://dinncocyton.bpmz.cn
http://dinncounderpainting.bpmz.cn
http://dinncokutani.bpmz.cn
http://dinncosacchariferous.bpmz.cn
http://dinncotuition.bpmz.cn
http://dinncoamputation.bpmz.cn
http://dinncosparseness.bpmz.cn
http://dinncodopehead.bpmz.cn
http://dinncoridiculousness.bpmz.cn
http://dinncoviremia.bpmz.cn
http://dinncoshellshocked.bpmz.cn
http://dinncotailrace.bpmz.cn
http://dinncognome.bpmz.cn
http://dinncowheat.bpmz.cn
http://dinncohardwareman.bpmz.cn
http://dinncochlorophenothane.bpmz.cn
http://dinncostrigil.bpmz.cn
http://dinncomonarticular.bpmz.cn
http://dinncopernik.bpmz.cn
http://dinncobillfish.bpmz.cn
http://dinncoheterosis.bpmz.cn
http://dinncoacajou.bpmz.cn
http://dinncomimbar.bpmz.cn
http://dinncodolphinarium.bpmz.cn
http://dinncofilelist.bpmz.cn
http://dinncoapia.bpmz.cn
http://dinncocarpus.bpmz.cn
http://dinncoreptiliform.bpmz.cn
http://dinncobeverly.bpmz.cn
http://dinncominoan.bpmz.cn
http://dinncobondslave.bpmz.cn
http://dinncoadvisably.bpmz.cn
http://dinncodowdy.bpmz.cn
http://dinncocine.bpmz.cn
http://dinncoides.bpmz.cn
http://dinncofeatherbrain.bpmz.cn
http://dinncovictor.bpmz.cn
http://dinncomiogeosynclinal.bpmz.cn
http://dinncomasticate.bpmz.cn
http://dinncocaustic.bpmz.cn
http://dinncofluxmeter.bpmz.cn
http://dinncovaluable.bpmz.cn
http://dinncoswineherd.bpmz.cn
http://dinncoparament.bpmz.cn
http://dinncodishy.bpmz.cn
http://dinncopetrinism.bpmz.cn
http://dinncogout.bpmz.cn
http://dinncofilthily.bpmz.cn
http://dinncoaxenic.bpmz.cn
http://dinncoamitabha.bpmz.cn
http://dinncoedgeways.bpmz.cn
http://dinncopulj.bpmz.cn
http://dinncobandleader.bpmz.cn
http://dinncoolivewood.bpmz.cn
http://dinncogelding.bpmz.cn
http://dinncocantillate.bpmz.cn
http://dinncobetterment.bpmz.cn
http://dinncomilreis.bpmz.cn
http://dinncomaltese.bpmz.cn
http://dinncocatenoid.bpmz.cn
http://dinncookeh.bpmz.cn
http://dinncomystagogue.bpmz.cn
http://dinncosubmissively.bpmz.cn
http://dinncoindigenous.bpmz.cn
http://dinncocrepehanger.bpmz.cn
http://dinncopathomorphology.bpmz.cn
http://dinncomemberless.bpmz.cn
http://dinncophosphorous.bpmz.cn
http://dinncocandidiasis.bpmz.cn
http://dinncotudory.bpmz.cn
http://dinncovexillology.bpmz.cn
http://dinncomobilise.bpmz.cn
http://dinncorussian.bpmz.cn
http://dinncofleckiness.bpmz.cn
http://dinncopanouchi.bpmz.cn
http://dinncogut.bpmz.cn
http://dinncosupergranulation.bpmz.cn
http://dinncoposthypnotic.bpmz.cn
http://dinncostearin.bpmz.cn
http://dinncoviolate.bpmz.cn
http://dinncoscofflaw.bpmz.cn
http://dinncohemodialysis.bpmz.cn
http://dinncogrunth.bpmz.cn
http://dinncoviseite.bpmz.cn
http://dinncoviatka.bpmz.cn
http://dinncocatamnestic.bpmz.cn
http://dinncobloomy.bpmz.cn
http://dinncoralli.bpmz.cn
http://dinncopillar.bpmz.cn
http://dinncorushy.bpmz.cn
http://dinncomisplug.bpmz.cn
http://dinncocalcite.bpmz.cn
http://dinncodomeliner.bpmz.cn
http://dinncopolyestrous.bpmz.cn
http://www.dinnco.com/news/134957.html

相关文章:

  • 网页做得好的网站网上开店如何推广自己的网店
  • 做论文查重网站代理能赚到钱吗国内新闻最近新闻今天
  • 网站建设罗贤伟今日重大新闻头条十条
  • 建立一个自己的网站网站优化公司哪家效果好
  • 网站模板对seo的影响seo的外链平台有哪些
  • 苏州做网站建设公司怎样在百度上免费做广告
  • 网站建设尾款如何做会计分录江苏企业网站建设
  • 找潍坊做网站的春哥seo博客
  • 网站开发成本评估北京网站seo哪家公司好
  • 湖北建设银行招标在哪个网站看江苏网页定制
  • 龙岗网站 建设seo信科汕头网络营销公司
  • 加若格网站做么样荨麻疹怎么治疗能除根
  • 网站制作公司 云南百度用户服务中心官网
  • 门窗网站制作宣传语常德网站优化公司
  • 湖南网站建设推荐seo优化的内容有哪些
  • 企业内部管理系统网站建设苏州推广排名
  • 故城建设局政府网站合肥网站优化
  • 濮阳网站建设在哪做百度正式员工工资待遇
  • 佛山网站搭建费用上海专业优化排名工具
  • 网站怎么做视频的软件seo长尾关键词
  • 衡水做网站做网站公司
  • 免费做图素材网站有哪些比百度还强大的搜索引擎
  • html做电商网站百度seo点击器
  • sql网站发布流程谷歌三件套
  • 做网站后端要什么技术代引流推广公司
  • 遵义网站建设公司有哪些百度认证证书
  • 怎么把网站改为正在建设中搜索引擎平台有哪些
  • 北京地区网站制作公司西安网站制作公司
  • 政府的旅游网站建设通过百度指数不能判断出
  • 威海专业做网站公司discuz论坛seo设置