
并发
ProgramResearch
这个作者很懒,什么都没留下…
展开
-
内存栅栏:软件高手的硬件观(一)
因翻译水平有限,如有不妥,敬请指正和谅解! 原文下载地址: http://download.youkuaiyun.com/download/programresearch/9829674是什么让疯狂的CPU设计者们强加内存栅栏给可怜而毫不知情的SMP(对称多处理器系统)软件设计者? 简而言之,因为内存引用的重排序可以达到更好的性能.因此在像同步原语这样的事上,需要用内存栅栏来强制排序.同步原语操作依翻译 2017-05-01 19:28:52 · 837 阅读 · 0 评论 -
内存栅栏:软件高手的硬件观(三)
4. 存储序列导致不必要的停顿 不幸的是,每个存储缓冲区必须相对小,这意味着CPU执行一个适当的序列存储能填满它的储存缓冲区(例如,如果它们所有的都导致缓存未命中).在那时,CPU必须再一次等待无效去完成,为了排空它的存储缓冲,在它能继续执行前.此类情况可立即出现在内存栅栏之后,而所有后续存储指令必须等待使无效操作去完成,无论是否这些存储导致缓存未命中. 此状态可被改进通过使标记无效确认消息尽翻译 2017-05-29 15:34:54 · 558 阅读 · 0 评论 -
内存栅栏:软件高手的硬件观(四)
因翻译水平有限,如有不妥,敬请指正和谅解! 原文下载地址: http://download.youkuaiyun.com/download/programresearch/98296746. 样例 内存栅栏序列此段介绍一些巧妙,但隐约有问题的内存栅栏的使用.尽管它们中很多在大多数时候可以工作,并且一些在某些特定的CPU上可以一直工作,这种用法必须避免,如果目的是为了产生在所有CPU上工作可靠的代码.为了辅助翻译 2017-05-30 11:26:38 · 953 阅读 · 0 评论 -
内存栅栏:软件高手的硬件观(二)
因翻译水平有限,如有不妥,敬请指正和谅解! 原文下载地址: http://download.youkuaiyun.com/download/programresearch/98296743.存储导致不必要的停顿 虽然显示在图1中的缓存结构,对重复的从指定的CPU读和写指定的数据项提供了好的性能,但它的性能对于第一次写一个指定的缓存行却相当糟糕.为此考虑图4,它显示了由CPU0写一个由CPU1缓存持有的缓存翻译 2017-05-21 16:14:53 · 507 阅读 · 0 评论 -
Java并发之ForkJoin
ForkJoin简介Java7中新添加了一种并发框架ForkJoin.如其名所言,ForkJoin框架适用于将任务分解为子任务,然后将结果合并的场景. ForkJoin与Executor类似,使用池(ForkJoinPool)来管理线程(ForkJoinWorkerThread),使用队列来管理任务(ForkJoinTask). 不同的是,ForkJoin中使用多个队列来管理任务,并且分转载 2017-06-11 20:49:48 · 492 阅读 · 0 评论