为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence)
本文所讨论的计算机模型是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)相关推荐
- 为什么程序员需要关心顺序一致性,而不是 Cache 一致性?
本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU.本文适合的对象是想用C 或者Java进行多线程编程的程序员.本文主要包括对Seq ...
- 程序员最关心的是什么
又到了财年末了, 每到这个时候都是我为之头疼的时候, 如何把手里那点不富裕的奖金合理的分配下去,维持好团队的效率和凝聚力,每次都要杀死我大片的脑细胞.不过,在和组员们聊天的过程中也发现, 其实大家最关 ...
- 写代码犹如写文章: “大师级程序员把系统当故事来讲,而不是当做程序来写” | 如何架构设计复杂业务系统? 如何写复杂业务代码?
写代码犹如写文章: "大师级程序员把系统当故事来讲,而不是当做程序来写" | 如何架构设计复杂业务系统? 如何写复杂业务代码? Kotlin 开发者社区 "大师级程序员把 ...
- Python 分析程序员最关心的竟不是技术,而是…
今天是2019年元旦,CSDN小姐姐们,祝大家新年快乐! 在过去的一年里,CSDN程序人生的职场.生活.行业热点.技术干货等几类文章,引起了很多开发者的共鸣. 这一年,程序人生收到了很多鼓励和认可的留 ...
- 程序员应该关心的iOS12新特性一览
iOS12随着2018WWDC的召开揭开了它神秘的面纱, 不过令人感到失望的是, 它并没有带来翻天覆地的变化: 没有改变沿用了5年的扁平化UI, 没有黑暗模式(但有半成品), 没有带来Swift5, ...
- 程序员为什么是吃青春饭,而不是像医生律师一样越老越值钱?
律师不知道.但医生要是坐下来就能看病收钱,大医院还至于几千块钱就能招到一堆廉价博士劳动力? 程序员可以吃青春饭,医生律师只能慢慢熬,原因就在于前者知识更新换代快,而且靠个人就能有很大的产出. 医学知识 ...
- 程序员要学点儿理财知识,而不仅仅是代码技巧
http://www.oschina.net/question/587367_153579 一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- <富爸爸,穷爸爸>是一个真实的故 ...
- 程序人生 - 程序员要学点儿理财知识,而不仅仅是代码技巧
一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- <富爸爸,穷爸爸>是一个真实的故事,作者罗伯特・清崎的亲生父亲和朋友的父亲对金钱的看法截然不同,这使他对认识金钱产生了兴趣, ...
- 程序员要学点儿理财知识,而不仅仅是代码技巧 .
文章来源http://blog.csdn.net/q969403688/article/details/24973037 与大家分享~~ 一.富爸爸,穷爸爸 关于金钱,穷爸爸总是这么说,而富爸爸则-- ...
最新文章
- 厦门理工学院计算机科学与技术专业,厦门理工学院计算机类(含计算机科学与技术、网络工程、空间信息与专业2016年在福建理科高考录取最低分数线...
- 【Spark-core学习之九】 Spark案例
- Redis操作Set类型
- 什么叫一年有四季......
- 使用Apache CXF开发SOAP Web服务
- poj 2513 Colored Sticks
- Android开发:4-3、Activity常用其他API接口、屏幕旋转
- QT中循环显示图片和简单的显示图片
- 基于FtpClient(JDK1.7)实现Ftp连接
- 在ubuntu系统下cocos2dx移植到android平台
- 【算法笔记】求给定序列的第k大(权值线段树/直接离散化)
- java毕业生设计在线购书商城系统计算机源码+系统+mysql+调试部署+lw
- Bug.Bounty.Bootcamp:(2)值得看的一本书
- Python 小程序:计算24点
- 1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]
- 在线观看北京奥运会直播 在网上看奥运会直播
- 紫光信息港 软件测试,紫光展锐 信息化软件工程师面经
- Linux进程间通信方式
- Python实验报告一 python基础试题练习
- ecshop附件下载_ecshop商品页面可按会员等级下载附件文档压缩包权限
热门文章
- AS3 鼠标指针样式
- 电子商务时间戳服务解决方案
- 剑指offer:调整数组顺序使奇数位于偶数前面
- CSP认证	201312-1出现次数最多的数[C++题解]:简单题
- c++大作业迷宫游戏 规定时间内完成_开卷有益 | 小学生做作业磨蹭的7个原因及对策!太准了~不得不为孩子收藏!...
- JAVa面向对象--反射
- 无法在流的结尾之外进行读取_IO流,字节流,字符流
- 理想内插_理想ONE性能测试:6.35秒就能破百,售价只要宝马X5一半
- 未转变者服务器床id,最新id欢迎补充
- python3屏幕抓取程序_python之屏幕抓取