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

绛县网站建设企业网站建设方案案例

绛县网站建设,企业网站建设方案案例,设计工作室logo创意,门户网站功能模块在整个文档中,重入和线程安全用于标记类和函数,从而表明怎样在多线程应用中使用它们。 线程安全函数可以从多个线程同时调用,即使调用使用共享数据也是如此,因为对共享数据的所有引用都是序列化的。也可以从多个线程同时调用重入…

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

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

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

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

重入:

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://www.yayakq.cn/news/798716/

相关文章:

  • 深圳网站建设公司有哪些内容广州企业名单
  • 番禺网站开发设计流行的网站建设技术有哪些
  • 视频推广是什么意思沈阳seo建站
  • 钓鱼网站的制作教程做三折页的网站
  • 做网站主色调选择crm外贸管理软件
  • 网站建好了seo怎么做前端如何做双语网站
  • 咖啡网站设计建设北仑网站建设培训学校
  • 沧州网站建设定制价格广告投放渠道
  • 站长之家查询域名WordPress仿百度百家主题
  • 凤岗镇做网站企业网站建设有什么
  • 简述网站建设的代码运行框wordpress6
  • 轻量级网站开发wordpress 页面 首页
  • 外国高端网站设计国外贸易网站
  • 做防水广告在哪个网站最好有什么网站做任务换q币吗
  • 可以打开所有网站的浏览器dw软件做的东西怎么在网站用
  • seo网站建设及扩词工程公司介绍
  • 临沂百度网站如何做网站词库
  • 站外seo是什么北京市工商注册登记网
  • 漯河网站推广哪家好网站加地图
  • 提供企业网站建设质量好的购物平台
  • 洛阳做多屏合一网站重庆建设工程信息查询
  • 网站源码如何保存大连模板做网站
  • 丽水市建设监理协会网站在哪里企业网站特色建设
  • 广州网站开发网络公司asp如何做网站
  • 做网站 广州手机app开发培训
  • 网站设计字体网页升级紧急通知狼人
  • 网站的主机去什么网站发贴做推广
  • 新网站建设渠道厦门英文网站建设
  • 建网站的外包公司纯静态网站的用什么cms
  • 做天猫网站价格dw做音乐网站