本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU。本文适合的对象是想用C++或者Java进行多线程编程的程序员。本文主要包括对Sequential Consistency和Cache Coherence的概念性介绍并给出了一些相关例子,目的是帮助程序员明白为什么需要在并行编程时关注Sequential Consistency。

Sequential Consistency(下文简称SC)是Java内存模型和即将到来的C++0x内存模型的一个关键概念,它是一个最直观最易理解的多线程程序执行顺序的模型。Cache Coherence(下文简称CC)是多核CPU在硬件中已经实现的一种机制,简单的说,它确保了对在多核CPU的Cache中一个地址的读操作一定会返回那个地址最新的(被写入)的值。

那么为什么程序员需要关心SC呢?因为现在的硬件和编译器出于性能的考虑会对程序作出违反SC的优化,而这种优化会影响多线程程序的正确性,也就是说你用C++编写的多线程程序可能会得到的不是你想要的错误的运行结果。Java从JDK1.5开始加入SC支持,所以Java程序员在进行多线程编程时需要注意使用Java提供的相关机制来确保你程序的SC。程序员之所以不需要关心

为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence)相关推荐

  1. 为什么程序员需要关心顺序一致性,而不是 Cache 一致性?

    本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU.本文适合的对象是想用C 或者Java进行多线程编程的程序员.本文主要包括对Seq ...

  2. 程序员最关心的是什么

    又到了财年末了, 每到这个时候都是我为之头疼的时候, 如何把手里那点不富裕的奖金合理的分配下去,维持好团队的效率和凝聚力,每次都要杀死我大片的脑细胞.不过,在和组员们聊天的过程中也发现, 其实大家最关 ...

  3. 写代码犹如写文章: “大师级程序员把系统当故事来讲,而不是当做程序来写” | 如何架构设计复杂业务系统? 如何写复杂业务代码?

    写代码犹如写文章: "大师级程序员把系统当故事来讲,而不是当做程序来写" | 如何架构设计复杂业务系统? 如何写复杂业务代码? Kotlin 开发者社区 "大师级程序员把 ...

  4. Python 分析程序员最关心的竟不是技术,而是…

    今天是2019年元旦,CSDN小姐姐们,祝大家新年快乐! 在过去的一年里,CSDN程序人生的职场.生活.行业热点.技术干货等几类文章,引起了很多开发者的共鸣. 这一年,程序人生收到了很多鼓励和认可的留 ...

  5. 程序员应该关心的iOS12新特性一览

    iOS12随着2018WWDC的召开揭开了它神秘的面纱, 不过令人感到失望的是, 它并没有带来翻天覆地的变化: 没有改变沿用了5年的扁平化UI, 没有黑暗模式(但有半成品), 没有带来Swift5, ...

  6. 程序员为什么是吃青春饭,而不是像医生律师一样越老越值钱?

    律师不知道.但医生要是坐下来就能看病收钱,大医院还至于几千块钱就能招到一堆廉价博士劳动力? 程序员可以吃青春饭,医生律师只能慢慢熬,原因就在于前者知识更新换代快,而且靠个人就能有很大的产出. 医学知识 ...

  7. 程序员要学点儿理财知识,而不仅仅是代码技巧

    http://www.oschina.net/question/587367_153579 一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- <富爸爸,穷爸爸>是一个真实的故 ...

  8. 程序人生 - 程序员要学点儿理财知识,而不仅仅是代码技巧

    一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- <富爸爸,穷爸爸>是一个真实的故事,作者罗伯特・清崎的亲生父亲和朋友的父亲对金钱的看法截然不同,这使他对认识金钱产生了兴趣, ...

  9. 程序员要学点儿理财知识,而不仅仅是代码技巧 .

    文章来源http://blog.csdn.net/q969403688/article/details/24973037 与大家分享~~ 一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- ...

最新文章

  1. 厦门理工学院计算机科学与技术专业,厦门理工学院计算机类(含计算机科学与技术、网络工程、空间信息与专业2016年在福建理科高考录取最低分数线...
  2. 【Spark-core学习之九】 Spark案例
  3. Redis操作Set类型
  4. 什么叫一年有四季......
  5. 使用Apache CXF开发SOAP Web服务
  6. poj 2513 Colored Sticks
  7. Android开发:4-3、Activity常用其他API接口、屏幕旋转
  8. QT中循环显示图片和简单的显示图片
  9. 基于FtpClient(JDK1.7)实现Ftp连接
  10. 在ubuntu系统下cocos2dx移植到android平台
  11. 【算法笔记】求给定序列的第k大(权值线段树/直接离散化)
  12. java毕业生设计在线购书商城系统计算机源码+系统+mysql+调试部署+lw
  13. Bug.Bounty.Bootcamp:(2)值得看的一本书
  14. Python 小程序:计算24点
  15. 1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]
  16. 在线观看北京奥运会直播 在网上看奥运会直播
  17. 紫光信息港 软件测试,紫光展锐 信息化软件工程师面经
  18. Linux进程间通信方式
  19. Python实验报告一 python基础试题练习
  20. ecshop附件下载_ecshop商品页面可按会员等级下载附件文档压缩包权限

热门文章

  1. AS3 鼠标指针样式
  2. 电子商务时间戳服务解决方案
  3. 剑指offer:调整数组顺序使奇数位于偶数前面
  4. CSP认证 201312-1出现次数最多的数[C++题解]:简单题
  5. c++大作业迷宫游戏 规定时间内完成_开卷有益 | 小学生做作业磨蹭的7个原因及对策!太准了~不得不为孩子收藏!...
  6. JAVa面向对象--反射
  7. 无法在流的结尾之外进行读取_IO流,字节流,字符流
  8. 理想内插_理想ONE性能测试:6.35秒就能破百,售价只要宝马X5一半
  9. 未转变者服务器床id,最新id欢迎补充
  10. python3屏幕抓取程序_python之屏幕抓取