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

网络企业网站建设方案上海网站建设 网页制作

网络企业网站建设方案,上海网站建设 网页制作,网站服务器迁移步骤,网站建设分金手指排名十三我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

保护共享资源的方法(锁)

  • 保护共享资源要做到什么
  • 什么是锁
  • 为什么要有锁
  • 锁的创建
  • 锁的初始化
  • 锁的销毁
  • 加锁和解锁
  • 以抢票系统了解锁的使用

保护共享资源要做到什么

我们要保护共享资源,我们其实无外乎做到两点即可。
1).互斥:及同一时间内只有一个执行流访问共享资源。
2).同步:及访问共享资源要有一定的顺序。
满足上述两点,则共享资源就被保护起来了,被称为临界资源。

什么是锁

是完成线程互斥的一种方法,它可以让共享资源在同一时间内,只被一个执行流访问。
锁的底层原理其实相当简单,我们可以将锁想象成一个整数1,只有线程拿到这个整数1,才可以执行后面的代码,否则就阻塞,在执行完后,再把锁还回去。

为什么要有锁

锁是线程进行互斥的常用手段,锁的存在让我们可以保护共享内存,让原本并发执行的线程串行执行,防止出现出乎意料的结果。

锁的创建

锁的创建其实是一个原生线程库的内置类型。

pthread_mutex_t
这就是锁类型,我们在对这个类型初始化就得到了一把锁。
要注意,如果锁是局部的,则需要使用初始化接口,如果是全局的锁,则可以使用宏PTHREAD_MUTEX_INITIALIZER来初始化。
在这里插入图片描述

锁的初始化

全局锁,使用宏初始化,局部锁,使用接口初始化。

pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)

参数1:代表初始化那个锁,要传入一个指针。
参数2:设置锁的属性,传入nullptr为默认属性。

在这里插入图片描述

锁的销毁

不论是全局锁还是局部锁,都需要使用接口销毁。

pthread_mutex_destroy(pthread_mutex_t *mutex)

参数1:直接指定某个锁,销毁

在这里插入图片描述

加锁和解锁

给某个线程加锁,只需要在该线程中对临界区加锁,保护共享资源就是保护访问共享资源的代码
加锁解锁要注意以下几点
1).加锁和解锁要尽量细致。
2).加锁后,加锁的部分可以视为“原子操作”
3).加锁后要注意解锁,不然多线程可能导致死锁问题

pthread_mutex_lock(pthread_mutex_t *mutex)

参数1:代表该线程加那把锁。

pthread_mutex_unlock(pthread_mutex_t *mutex)

参数1:代表该线程解那把锁

以抢票系统了解锁的使用

在这里插入图片描述

抢票逻辑中,票数是共享资源,我们的每个线程都需要一直抢票,但是对于抢票逻辑我们需要加锁,因为对共享资源的操作不是原子的,可能导致不可知的后果。

http://www.yayakq.cn/news/943154/

相关文章:

  • 网站优化的公司网站后台模板 下载
  • 自己做流媒体网站难贵阳百度seo点击软件
  • 自己的电脑做服务器 并建网站同创企业网站源码
  • 石家庄网站制作网站设计师专业网站
  • 廉洁长沙网站wordpress 上传函数
  • 电子商务网站建设与维护试题做盗版网站会坐牢吗
  • 做餐饮培训网站广告网站建设约谈表态发言
  • 网站模板 html5合肥网站制作建设公司
  • 成都高端网站建设那家好登录wordpress显示403
  • 济南高端网站设计分销商城搭建
  • 伊宁网站建设推广平台系统登录入口
  • 网站制作商业模式巴彦淖尔市百家姓网站建设
  • 新民电商网站建设程序互联网保险的发展趋势
  • 网站开发定制方案龙岗英文网站制作
  • 网站开发流程比较合理北京网站设计建设
  • 贵州 做企业网站的流程百度不更新网站
  • 小说网站开发php客户做网站一定报价怎么办
  • 长沙百度网站快速排名搭建企业网站具体过程
  • 那些网站可以做淘宝店铺推广电子商务网站建设与维护 论文
  • 传媒公司排名前十东莞网站排名优化报价
  • 生物制药公司网站建设宁波网站关键词优化公司
  • 祁阳网站建设最新软件发布平台
  • wordpress建站实例郑州网络推广哪家不错
  • wordpress站点标题删除制作一个网页需要花钱吗
  • 中国建设银行山西分行招聘网站正邦logo设计
  • 权重查询爱站网湖北建设工程信息网
  • 广西住房和城乡建设厅网站ix空间搭建wordpress
  • wordpress做大站好吗制作网站需要注意的细节
  • 新乡市网站建设电脑培训班大网站设计
  • 塘厦东莞网站建设响应网站先做电脑端