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

做网站的服务器排名常用的网络推广方法

做网站的服务器排名,常用的网络推广方法,吕梁seo网站建设,上海网站建设免费推在上一节的卖票程序中&#xff0c;我们讲解了如何在多线程中保证临界资源的正确访问——使用互斥锁&#xff0c;即 lock_guard<mutex> lock(mtx); count;lock_guard<mutex> lock(mtx); count--; 从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用-CSDN博客…

在上一节的卖票程序中,我们讲解了如何在多线程中保证临界资源的正确访问——使用互斥锁,即

lock_guard<mutex> lock(mtx);
count++;lock_guard<mutex> lock(mtx);
count--;

从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用-CSDN博客

但是互斥锁是比较重的,临界区代码做的事情比较多,它涉及到系统调用和上下文的切换,在高并发的情况下可能会带来一定的性能影响。而原子操作通常在硬件层面实现,其执行速度更快,且不需要上下文的切换 

因此,当临界区仅仅只是一个变量而不是一段代码时,使用原子类型的效率比互斥锁要高

以下示例:

#include<iostream>
#include<thread>
#include<list>
#include<atomic>
using namespace std;volatile atomic_bool isReady(false);
volatile atomic_int mycount(0);void task()
{while(!isReady){std::this_thread::yield();//线程让出cpu时间,等待调度}for(int i=0;i<100;i++){mycount++;}
}int main()
{list<std::thread> tlist;for(int i=0;i<9;i++){tlist.push_back(thread(task));}isReady=true;for(auto& td:tlist){td.join();}cout<<mycount<<endl;return 0;
}

上述volatile关键字的作用是防止优化编译器把变量从内存装入 CPU 寄存器中。如果变量被装入寄存器,那么两个线程有可能一个使用内存中的变量,一个使用寄存器中的变量,这会造成程序的错误执行。

volatile 的意思是让编译器每次操作该变量时一定要从内存中真正取出,而不是使用已经存在寄存器中的值

http://www.wangmingla.cn/news/162451.html

相关文章:

  • 钓鱼网站怎么做防护教程电商网站订烟平台
  • 青岛需要做网站的公司有哪些怎样创建网页
  • 一元云够网站建设免费发布广告的平台
  • 武夷山网站制作品牌营销方案
  • 甘肃三北防护林建设局网站seo怎么优化关键词排名培训
  • 网站 留言 以邮件形式百度seo排名软
  • 网站制作产品资料网络营销的优势与不足
  • 做网站网上接单网页模板建站系统
  • 太原微网站建设谁家好惠州百度推广排名
  • 免费那个网站今日热搜榜前十名
  • 哪里有服务好的深圳网站建设税收大数据
  • 学习做网站多久杭州网站免费制作
  • 做私活网站百度获客
  • 长沙优化网站价格色盲测试图第六版及答案大全
  • 怎样做站长建网站网络搜索引擎优化
  • 做爰网站視屏广告公司简介
  • 网站开发课程的建议免费获客平台
  • 什么是h5动态网站建设公司网址怎么注册
  • div css快速做网站网站推广如何收费
  • 企业网络需求分析网站优化和网站推广
  • 做一个网站需要多长时间网站推广网
  • 厦门外贸网站建设宁波seo排名优化培训
  • 找人做彩票网站有哪些网上哪里可以免费打广告
  • 美国做跟单社区的网站天眼查企业查询
  • 一定要知道的网站个人网站网页首页
  • 无锡网站建设哪家做得比较好seo关键字怎么优化
  • 常用的建一个网站要多少钱品牌推广运营策划方案
  • 公司网站做么做百度排名引擎优化
  • 专门教做西餐的网站seo文章推广
  • 延吉网站开发aso排名优化