在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。生产者线程和消费者线程在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必...
分类:
其他好文 时间:
2015-01-29 14:29:39
阅读次数:
187
软件优化是提高cache命中率的十分有效的手段,cache的基本原理是利用程序局部性,而软件优化可以通过提高程序局部性,从而提高cache命中率。通过gem5仿真验证程序优化对提高cache命中率的影响。...
分类:
编程语言 时间:
2015-01-28 21:24:55
阅读次数:
223
当连接使用远端服务或资源时,可能需要花不少精力来做好错误处理。这个模式可以有效提高程序的稳定性和弹性。
Context and Problem
在像云这种分布式的环境中,应用程序的操作经常访问远端的资源和服务。然而这类操作有可能因为网络响应慢、超时、资源暂时不可用等瞬时性故障(transient faults)而失败。这些故障通常情况下会在一小段时间后自动恢复,而对于一个好的云应用来说...
分类:
其他好文 时间:
2015-01-25 11:09:43
阅读次数:
1142
一.位运算在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用"位运算"来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能,这使得C语言也能像汇编语言一样用来编写系统程序。二.位运算符1.& 按...
分类:
其他好文 时间:
2015-01-24 22:32:35
阅读次数:
181
生成用于表达特定属性的连续表面是大多数地理信息系统 (GIS) 应用程序中应具备的一种重要功能。最常用的一种表面类型可能就是 terrain 数字高程模型。...
分类:
其他好文 时间:
2015-01-22 13:21:41
阅读次数:
227
这里是一张动画,演示在多线程(无限循环+Thread.Sleep)情况下主界面操作不受影响。多线程是一种提高程序运行效率和性能的常用技术。随着我们学习工作的深入,在编程中或多或少会涉及到需要多线程的情况。多数时候,我们的操作模式是后台线程中处理数据,计算结果,然后在前台界面(GUI)中更新显示。在....
分类:
编程语言 时间:
2015-01-21 22:16:47
阅读次数:
277
这里是一张动画,演示在多线程(无限循环+Thread.Sleep)情况下主界面操作不受影响。多线程是一种提高程序运行效率和性能的常用技术。随着我们学习工作的深入,在编程中或多或少会涉及到需要多线程的情况。多数时候,我们的操作模式是后台线程中处理数据,计算结果,然后在前台界面(GUI)中更新显示。在....
分类:
编程语言 时间:
2015-01-21 21:59:02
阅读次数:
327
使用UML不仅能够形象化的表达我们的程序思想,并且能够帮助我们提高程序的质量。一个杂乱无章的程序让维护者望而生畏,其成本也可想而知。在面向程序设计(OOD)中有5条原则是帮助我们设计一个高效、简洁的程序:1.单一职责原则(SRP) 2.开放-闭合原则(OCP) 3.Liskov替换原则(LSP).....
分类:
其他好文 时间:
2015-01-21 19:37:12
阅读次数:
256
#define是C语言提供的宏定义命令,能够为程序员提供一定方便,在一定程度上提高程序的执行效率。
在程序中,有效范围为宏定义之后的本源文件结束,在此文件范围内有效。另外,用#undef可以终止宏定义的作用域,可灵活控制宏定义的作用范围。
(1)#define定义的常量无数据类型,只是简单的字符替换,没了类型的安全检查,且有时还会产生边际效应。
e.g:#define N100...
分类:
其他好文 时间:
2015-01-20 12:04:09
阅读次数:
144
1 //获取两个点的高程 2 pRasterSurface.PutRaster(pRasterLayer.Raster, 0); 3 ISurface pSurface = pRasterSurface ...
分类:
其他好文 时间:
2015-01-18 22:23:46
阅读次数:
195