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

做电商网站需要会些什么条件/搜索引擎简称seo

做电商网站需要会些什么条件,搜索引擎简称seo,网站建设案例渠道,廊坊网站制作工具目录 一、互斥概念 二、互斥的使用函数 三、互斥的底层原理 一、互斥概念 互斥,全称是线程互斥,互斥是一套解决方案,用来保护临界资源。一般在多线程的代码中,要使用互斥这套解决方案来保护临界资源。 主要从代码的角度理解互斥…

目录

一、互斥概念

二、互斥的使用函数

三、互斥的底层原理


一、互斥概念

        互斥,全称是线程互斥,互斥是一套解决方案,用来保护临界资源。一般在多线程的代码中,要使用互斥这套解决方案来保护临界资源。

        主要从代码的角度理解互斥,下面的代码背景:多线程代码,有4个线程在其函数中访问了临界资源,现在用互斥来保护临界资源。

二、互斥的使用函数

man pthread_mutex_init

   

        pthread_mutex_t 等于定义一把互斥锁。定义互斥锁有两种情况,

  • 如果打算将互斥锁定义成全局或者静态的,则执行这条代码即可。

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

//1.定义全局互斥锁
pthread_mutex_t g_mutex= PTHREAD_MUTEX_INITIALIZER;
void route(ThreadData* td)
{while(1){pthread_mutex_lock(&g_mutex);if(td->_tick>0){usleep(1000);printf("%s running,can get only tick:%d\n",td->_name.c_str(),td->_tick);td->_tick--;pthread_mutex_unlock(&g_mutex);td->_total++;}else{pthread_mutex_unlock(&g_mutex);break;}}}
  • 如果打算将互斥锁定义在局部,则需要使用相关接口初始化和销毁。

  • 更优雅的做法,把上锁和解锁做封装,交给类来做。

//3.RAII风格的加锁、解锁
void route(ThreadData* td)
{while(1){//在循环内创建一个类 临时对象,出循环销毁,调用析构函数,同时解锁Lock lock(&td->_mutex);if(td->_tick>0){usleep(1000);printf("%s running,can get only tick:%d\n",td->_name.c_str(),td->_tick);td->_tick--;td->_total++;}else{break;}}
}

三、互斥的底层原理

  • 为什么互斥锁能解决共享资源被多个线程访问的问题。

1.多线程本质是在并行运行程序,临界资源即共享资源,临界区即访问临界资源的代码,而保护共享资源,其实就是想办法在把临界区的代码变成多线程在串行访问

2.专业来说,就是要求,临界区的代码要具备原子性,即要么还没开始做,要么已经完成。

3.在cpu执行代码的角度来看,要求临界区代码转成汇编后,只需一个时钟周期即可完成。

4.显然,临界区的代码,不可能只是一句汇编。

5.因此,有了互斥锁的设计,只需保证申请锁的过程是原子性的即可,让其他线程卡在申请锁这个语句即可。

  • 底层汇编

        

        上锁的过程,在转成汇编语句后,就是上面这几句汇编语言,其中最重要的一句就是xchgb语句,这个语句就是原子的,交换寄存器和内存中的值,而内存中的这个值代表着锁,寄存器的值却是0。

        这个过程其实是这样的:内存中定义锁后,线程1执行xchgb后,意味着线程1申请到了锁,也意味着线程1 把临界资源上了锁,此时如果发生线程切换,线程2执行xchgb后,因为内存中已经没有了锁这个资源,所以后面的条件语句线程2也就无法执行。

        这就是互斥锁的最底层实现原理。

http://www.lryc.cn/news/580954.html

相关文章:

  • 驰够网官方网站/网络营销策划书封面
  • 柳州网站建设公司/网站联盟营销
  • 做网站用什么cms 知乎/百度新闻首页
  • 达州网站建设qinsanw/数据分析网
  • 嵩县网站开发/网站优化课程培训
  • 唐山做企业网站/北京优化网站方法
  • 网页网站怎么做/新东方
  • 谷歌网站 百度/网络营销知名企业
  • 建国外网站/山西太原网络推广
  • 小程序制作需要什么/如何做好seo基础优化
  • 深圳云购网站制作/seo优化神器
  • 做的网站百度上可以搜到吗/全国疫情的最新数据
  • 营销型网站建设明细报价表/百度霸屏全网推广
  • 手机设计软件平面设计/网站优化网
  • 免费建设自己的网站/广州企业网站建设
  • 成都网站设计平台/本地推广最有效的方法
  • 哪些网站的做的好看的图片/惠州seo推广优化
  • 做b2b网站/中国免费网站服务器主机域名
  • 扬州手机网站建设/seo诊断书
  • 企业网站前端模板/企业整站优化
  • javaweb做网站过程/站长之家怎么找网址
  • 简单asp网站/百度推广客户端怎样注册
  • 网站常用模块/游戏推广论坛
  • 哪里有做网站开发/seo网络优化专员是什么意思
  • 网站建设的总体设计/公司员工培训内容有哪些
  • 用wordpress做微网站/百度推广客服电话人工服务
  • 动漫美女做爰视频网站/360优化大师官方版
  • 哪种网站开发简单/襄阳网站推广优化技巧
  • 共同建设网站协议/google seo教程
  • 凡科建站步骤/杭州产品推广服务公司