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

杭州网站建设专家怎么创建自己的网站

杭州网站建设专家,怎么创建自己的网站,商品网站开发,wordpress 2.9下载在整个文档中,重入和线程安全用于标记类和函数,从而表明怎样在多线程应用中使用它们。 线程安全函数可以从多个线程同时调用,即使调用使用共享数据也是如此,因为对共享数据的所有引用都是序列化的。也可以从多个线程同时调用重入…

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

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

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

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

重入:

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/178999/

相关文章:

  • 晋中网站开发不用购买域名做网站
  • 网站建设哪家有名双11各大电商平台销售数据
  • wordpress多站点分别部署网络注册平台怎么注册
  • 建立网站需要多少钱?商丘网站设计
  • 网页制作与网站建设宝典(第2版)做电影网站有什么好处
  • 花生壳盒子可以做网站服务器lamp wordpress
  • 一个人可以做网站吗平湖网站改版
  • 地方网站类型盐城网站开发代理商
  • 凡科建站怎么绑定自己的域名城市房产网
  • 网站开发 评价织梦网站入侵
  • 搭设企业网站教程用dw做静态网站的步骤
  • 水碓子网站建设大连网龙网络科技有限公司
  • 网站建设和网站推广安全证查询官网
  • 盐城哪家专业做网站佛山seo优化排名推广
  • 优秀设计师网站企业网站建设 安全
  • 临河做网站网站备案号超链接怎么做
  • 做投标的网站网页设计图片素材小插件
  • 怎样做网站代理天津做app和网站的公司
  • 什么是网站推广优化wordpress博客如何防止另存为
  • 张家口城乡建设局网站班级网站界面
  • 深圳定制建设网站注册深圳公司需要多少钱
  • 怎么做网站开发的方案北京网站建设seo公司哪家好
  • 网站风格包括成品网站 免费
  • 如何做网站与网页wordpress默认用户名密码破解
  • 手机网站404页面宁波网站推广找哪家
  • 上海英文网站建设公司深圳办公室装修设计公司
  • 网站建设 职责华为中小企业解决方案
  • 高端网站开放深圳品牌设计公司有哪些
  • 自助建站平台网站东莞网站关键排名
  • 网站制作成功案例wordpress后台菜单如何修改