前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【高并发】导致并发编程频繁出问题的“幕后黑手”

【高并发】导致并发编程频繁出问题的“幕后黑手”

作者头像
冰河
发布2020-10-29 16:11:42
3330
发布2020-10-29 16:11:42
举报
文章被收录于专栏:冰河技术

作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:

https://github.com/sunshinelyz/mykit-delay

PS: 欢迎各位Star源码,也可以pr你牛逼哄哄的代码。

写在前面

工作了3年的小菜同学,平时在公司只是做些CRUD的常规工作,这次,出去面试被面试官一顿虐啊!尤其是并发编程的知识简直就是被吊打啊。小菜心有不甘,回来找自己工作经验非常丰富的朋友大冰来帮助自己提升并发编程的知识,于是便有了接下来的一系列小菜学并发的文章。

并发编程的难点

并发编程一直是很让人头疼的问题,因为多线程环境下不太好定位问题,它不像一般的业务代码那样打个断点,debug一下基本就能够定位问题所在。并发编程中,出现的问题往往都是很诡异的,而且大多数情况下,问题也不是每次都会重现的。那么,我们如何才能够更好的解决并发问题呢?这就需要我们了解造成这些问题的“幕后黑手”究竟是什么!

操作系统做出的努力

计算机的制造商为了提升计算机的整体性能,对计算机做出了相应的优化措施。

CPU增加了缓存

CPU对于数据的计算速度远远高于从内存中存取数据的速度,我们可以想象一下,如果说,CPU对于数据的计算需要一天时间,那么,从内存中读取和写入数据可能分别需要1年的时间。也就是说,在这一年365天当中,CPU只需要工作一天,而364天的时间都在等待从内存中读取或者存储数据。这对于CPU的利用率来说,就是极大的浪费了。

为了缓和CPU与内存之间的速度差异,计算机的制造商为CPU增加了缓存。

操作系统增加了进程和线程

CPU的速度比内存快的多,而内存又比磁盘快的多。如果说,CPU运算需要一天的时间,从内存读取数据需要一年的话,那从磁盘读取数据就需要10年的时间了。没错,磁盘就是这么慢啊!

为了缓和CPU和磁盘设备之间的速度差异,操作系统的制造商增加了进程和线程技术。

优化CPU指令执行顺序

我们写的并发程序在操作系统上运行时,对于CPU缓存的使用可能会不太合理,造成CPU缓存的浪费。

为了使CPU的缓存能够得到更加合理的利用,编译程序对CPU上指令的执行顺序进行了优化。

揪出“幕后”黑手

计算机和操作系统的制造商对计算机和操作系统进行的优化,在无形当中造成了很多并发编程的问题。本质上,并发编程的很多诡异的问题源头也在于此,这也是并发编程频繁出问题的“幕后黑手”。所以,我们可以将“幕后黑手”总结如下。

没错,这就是造成并发编程问题的“幕后黑手”!!后面我们将分别细化说明这些“幕后黑手”。

总结

了解并掌握并发编程问题的“幕后黑手”,有助于我们更好的学习并发知识和解决并发问题。

最后,附上并发编程需要掌握的核心技能知识图,祝大家在学习并发编程时,少走弯路。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 冰河技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
  • 并发编程的难点
  • 操作系统做出的努力
    • CPU增加了缓存
      • 操作系统增加了进程和线程
        • 优化CPU指令执行顺序
        • 揪出“幕后”黑手
        • 总结
        相关产品与服务
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档