一道面试题,高并发下,下面一段代码会出现什么问题

type M struct {m map[int]ints sync.RWMutex
}
func (m *M) Set(k,i int) {m.s.Lock()defer m.s.Unlock()m.m[k] = i
}
func (m *M) Get(k int) {m.s.RLock()defer m.s.RUnlock()fmt.Println(m.m[k])
}

分析:RWMutex的特点允许多个groutine并发的读,前提是临界区的变量没有被修改,RLock和RUnlock方法来获取和释放一个读取或者共享锁。发生在读很快的情况。高并发下,比如读是非常多的,导致读会一直占据着锁,导致set写入获取锁的机会降低。当然一般读取一个map是很快的,但是如果高并发下持续的读,就不太好了,这角度上还不如普通的互斥锁,当然map推荐sync.Map

RWMutex的一道面试题相关推荐

  1. 从一道面试题谈谈一线大厂码农应该具备的基本能力

    作者:Yura Shevchenko 来源:skypixel.com 关于一线码农的面试,我想说 求职面试在绝大部分人来说都是必不可少的,自己作为求职者也参与了不少面试(无论成功或者失败),作为技术面 ...

  2. 有的线程它死了,于是它变成一道面试题

    来自:why不止技术 有些线程它活着,但它躺在池中碌碌无为: 有的线程它死了,于是它变成一道面试题. 这次的文章,要从一次阿里巴巴的面试说起. 我记得那天是周一,刚刚经历过周末过的放松,干劲十足的我正 ...

  3. 每日一道面试题(第7期)---Android补间动画与属性动画的区别

    零零碎碎的东西总是记不长久,仅仅学习别人的文章也只是他人咀嚼后留下的残渣.无意中发现了这个每日一道面试题,想了想如果只是简单地去思考,那么不仅会收效甚微,甚至难一点的题目自己可能都懒得去想,坚持不下来 ...

  4. 最近刷爆朋友圈的一道面试题

    前言: 最近在网上有一道面试题掀起了劲爆的浪潮,好多家公司都模仿提问了这么一道面试题,而且好多人也都在讨论这道面试题要是自己回答的话该怎么回答!这道题也是在个网站上刷爆了. 面试题 如果不用Sprin ...

  5. (转)从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节

    背景:学习java的基础知识,每次回顾,总会有不同的认识.该文系转载 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的, ...

  6. 从一道面试题,到“我可能看了假源码[2]

    上一篇从一道面试题,到"我可能看了假源码"中,由浅入深介绍了关于一篇经典面试题的解法. 最后在皆大欢喜的结尾中,突生变化,悬念又起.这一篇,就是为了解开这个悬念. 如果你还没有看过 ...

  7. 从一道面试题谈起,大厂到底看重程序员的什么能力?

    唐磊,他谦逊的自我介绍,是"在阿里云打工的清华学渣". 上周的一篇<字符串比较,居然暗藏玄机>,我最早是在唐磊<这10行比较字符串相等的代码给我整懵了>里看 ...

  8. 给定一个数值,输出符合中国人习惯的读法--记一道笔试题

    题目:给定一个数字,最大小于一万亿,输出符合中国人习惯的读法,例如: a.12输出:十二 b.102输出:一百零二 c.1002输出:一千零二 d.112输出:一百十二 e.10112输出:一万零一百 ...

  9. 一道笔试题--求二进制数1的个数

    要进一家新公司难免要进行笔试,虽然笔试通过的人很多都有背题之嫌,但是统计意义上最起码可以看出一个程序员的认真程度,毕竟很多公司的考题也不是自己创的,也是在网上偷的,允许公司偷题就必须允许应聘者偷答案. ...

最新文章

  1. (转)C#开发微信门户及应用(4)--关注用户列表及详细信息管理
  2. 判断条件为空时需要注意
  3. MariaDB的二进制包安装方法
  4. python numpy库等差不均分_numpy.linspace 生成等差数组的方法
  5. java 泛型参数的类型_Java获得泛型参数类型
  6. CocoaPods 错误 target overrides the `OTHER_LDFLAGS`...
  7. 单位阶跃信号是周期信号吗_直流散热风扇的信号你知道如何控制吗?
  8. [Vue warn]: Error in mount hook: “TypeError: Cannot read properties of null (reading ‘getAttribute‘)
  9. 【转载】WebService到底是什么?
  10. java中普通变量、静态变量、静态代码块初始化的顺序辨析
  11. java zookeeper 使用_Zookeeper简介
  12. 沉睡者 - 抖音中视频计划横版16:9视频制作教程
  13. XMLHttpRequest对象的readyState与status
  14. go通过channel获取goroutine的处理结果
  15. Simcenter Flotherm XT案例练习
  16. 随性随笔_201606
  17. 【Vue3】源码解析
  18. Stop c000021a {Fatal System Error} The Session Manager Initialization System Process...
  19. 示例详述Docker部署tensorflow-serving
  20. 我的世界启动器c语言源码,CSGO辅助程序(我的世界启动器)

热门文章

  1. 分组函数group by和Oracle中分析函数partition by的用法以及区别
  2. 职高有计算机专业前途怎么样,职高有哪些专业前途好有发展前景
  3. python什么是数据结构_python算法与数据结构-数据结构介绍(38)
  4. mysql-之增删改查
  5. Centos系统普通用户开启sudo命令
  6. 走近伏羲,谈5000节点集群调度与性能优化
  7. 每天看了哪些技术点,都记录在该文章下面,时常回过头来看看。
  8. 内核使用硬件ip的dma,dma_alloc_coherent 与 dma_alloc_writecombine (转)
  9. sicp 2.3-2.5 习题
  10. 发送当前IP到我的手机