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

全国网站备案织梦 xml网站地图

全国网站备案,织梦 xml网站地图,网页设计代码html千与千寻,网站平台开发报价单文章目录 线程池问题解答什么是单例模式什么是设计模式单例模式的特点饿汉和懒汉模式的理解STL中的容器是否是线程安全的?智能指针是否是线程安全的?其他常见的各种锁 读者写者问题 线程池问题解答 什么是单例模式 单例模式是一种 “经典的, 常用的, 常考的” 设…

文章目录

  • 线程池问题解答
    • 什么是单例模式
    • 什么是设计模式
    • 单例模式的特点
    • 饿汉和懒汉模式的理解
    • STL中的容器是否是线程安全的?
    • 智能指针是否是线程安全的?
    • 其他常见的各种锁
  • 读者写者问题

线程池问题解答

什么是单例模式

单例模式是一种 “经典的, 常用的, 常考的” 设计模式.

什么是设计模式

IT行业这么火, 涌入的人很多. 俗话说林子大了啥鸟都有. 大佬和菜鸡们两极分化的越来越严重. 为了让我们这些菜鸡们不太拖大佬的后腿, 于是大佬们针对一些经典的常见的场景, 给定了一些对应的解决方案, 这个就是设计模式

单例模式的特点

某些类,只应该具有一个对象(实例), 就称之为单例.
例如一个男人只能有一个媳妇.
在很多服务器开发场景中, 经常需要让服务器加载很多的数据 (上百G) 到内存中. 此时往往要用一个单例的类来管理这些数据.

饿汉和懒汉模式的理解

吃完饭立刻洗碗, 这种就是饿汉方式.因为下一顿吃的时候可以立刻拿着碗就能吃饭.
吃完饭, 先把碗放下, 然后下一顿饭用到这个碗了再洗碗, 就是懒汉方式
懒汉方式最核心的思想是 “延时加载”. 从而能够优化服务器的启动速度.
有兴趣的可以去我C++专栏看一看设计模式。

STL中的容器是否是线程安全的?

不是.
原因是, STL 的设计初衷是将性能挖掘到极致, 而一旦涉及到加锁保证线程安全, 会对性能造成巨大的影响.
而且对于不同的容器, 加锁方式的不同, 性能可能也不同(例如hash表的锁表和锁桶).
因此 STL 默认不是线程安全. 如果需要在多线程环境下使用, 往往需要调用者自行保证线程安全

智能指针是否是线程安全的?

对于 unique_ptr, 由于只是在当前代码块范围内生效, 因此不涉及线程安全问题.
对于 shared_ptr, 多个对象需要共用一个引用计数变量, 所以会存在线程安全问题. 但是标准库实现的时候考虑到了这个问题, 基于原子操作(CAS)的方式保证 shared_ptr 能够高效, 原子的操作引用计数.

其他常见的各种锁

悲观锁:在每次取数据时,总是担心数据会被其他线程修改,所以会在取数据前先加锁(读锁,写锁,行锁等),当其他线程想要访问数据时,被阻塞挂起。

乐观锁:每次取数据时候,总是乐观的认为数据不会被其他线程修改,因此不上锁。但是在更新数据前,会判断其他数据在更新前有没有对数据进行修改。主要采用两种方式:版本号机制和CAS操作。

CAS操作:当需要更新数据时,判断当前内存值和之前取得的值是否相等。如果相等则用新值更新。若不等则失败,失败则重试,一般是一个自旋的过程,即不断重试。

自旋锁,公平锁,非公平锁?
自旋锁:本质就是通过不断检测锁状态来进行资源是否就绪的方案。

读者写者问题

读者和写者-----互斥、同步
写者和写者------互斥、竞争
读者和读者-------共享

读者和写者其实也是一种生产者消费者模型,只不过读者写者问题中读者的优先级高于写者,只要有一个读者在,写者就不能写,因为容易因为时序问题导致读取会错意。同样的如果写者在读者就不能去读,得等写者写完,读者才能去读。

读者写者问题应用场景:数据被读取的频率非常高,而被修改的频率特别低。

读写锁
在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢? 有,那就是读写锁。[长时间等人和短时间等人的例子]

在这里插入图片描述

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

相关文章:

  • 邢台高端网站建设公司学校建设网站的目的和意义
  • 宝安有效的网站制作北京网站建设hj华网天下
  • 稳定的网络建站咨询电话设计方案英文
  • 跟公司产品做网站免费创建个人网站
  • 外贸网站建设信息大自然的网站设计
  • 建设部监理资质申报网站wordpress编辑器文件
  • 网站制作要求网络维护服务合同模板
  • 台州做网站哪家公司好好的平面网站模板
  • 网站建设的基础常识专业的天津网站建设
  • 做网站美工未来规划wordpress fold主题
  • 网站域名备案查询wordpress生成接口
  • 高端品牌网站建设(杭州)北京网站优化实战
  • 手机网站建设可行性分析江苏品牌网站建设
  • 注册外贸网站有哪些哪个网站可以做淘宝代码
  • 网站界面设计简单公司网站建设前期情况说明
  • 昆山网站建设 熊掌号免费创建社区论坛网站
  • 免费的软件下载网站宁乡网页设计
  • 宝山宜昌网站建设百度推广没有效果怎么办
  • 网站建设的报告分析工信部查网站备案
  • 网站个人空间郑州哪家专业做淘宝网站
  • 网站运行团队建设做竞价要会做网站吗
  • 网站建设swf播放器源码阳江招聘网最新招聘信息网官网
  • 时尚工作室网站源码个人业务网站免费制作
  • 工业和信息化部网站备案系统酒店类网站开发策略
  • 炫酷网站首页拼多多网站建设过程
  • 网站建设用的软件阜创汇网站建设名额
  • 大连网站制作杭州网站定制开发
  • 西安有哪些做网站的公司好郑州网站建设制作费用
  • 公司网站百度地图app科技产品网站建设
  • 广州网站制作公司优化wordpress关闭评论窗口