1.3.4 设计并发友好的应用程序
 
使用传统的命令风格编写多线程应用程序时,我们要面对两个问题:
■很难让现有的顺序代码变成并行的代码,因为要显式使用线程,必须修改大部分的基本代码。
■使用共享状态和锁定是困难的。必须仔细考虑如何使用锁来避免争用条件和死锁,留下足够的空间并行执行。
函数式编程给了我们答案:
■使用声明编式程风格时,可以在现有的代码中引入并行。替换很少几个基元,就能...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 00:12:17   
                                阅读次数:
229
                             
                    
                        
                            
                            
                                递归实现当然太简单,也用不着为了ac走这样的捷径吧。。非递归实现还挺有意思的。树的非递归遍历一定要借助栈,相当于把原来编译器做的事情显式的写出来。对于中序遍历,先要訪问最左下的节点,一定是进入循环后,不断的往左下走,走到不能走为止,这时候,能够从栈中弹出訪问的节点,相当于“左根右”过程的“根”,然后...
                            
                            
                                分类:
其他好文   时间:
2014-07-22 23:39:17   
                                阅读次数:
296
                             
                    
                        
                            
                            
                                这里,我们需要做一些事情,这些事情意味着深度改造前台: 1:为商品增加 添加到购物车 按钮,点击后功能实现; 2:商品排序; 3:购物车预览,以及添加 结算 按钮; 4:一个显式 购物车中有*个 商品 的widget; 一:添加到购物车 按钮 修改 Views/Parts/Product.cshtm...
                            
                            
                                分类:
其他好文   时间:
2014-07-22 22:41:55   
                                阅读次数:
334
                             
                    
                        
                            
                            
                                .net的GC机制有两个问题:首先GC并不能释放所有资源,它更不能释放非托管资源。其次,GC也不是实时的,所有GC存在不确定性。为了解决这个问题.NET提供了析构函数public class DisposeClass : System.IDisposable{ //供程序员显式调用的Dispose方...
                            
                            
                                分类:
其他好文   时间:
2014-07-21 14:16:37   
                                阅读次数:
244
                             
                    
                        
                            
                            
                                C#类实例的初始化是这样进行的:在调用构造函数的入口处先初始化自身数据成员,若声明字段时显式给出了初始化语句则按初始化语句进行,否则若是基本类型例如int或string则初始化为0或"",若是类则保持为null;若该类含有基类则下一步调用基类构造函数,基类构造函数的执行过程同上,最后调用派生类构造函...
                            
                            
                                分类:
其他好文   时间:
2014-07-21 11:05:16   
                                阅读次数:
193
                             
                    
                        
                            
                            
                                Java中数组的初始化方式
   初始化方式有两种:
1、静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统指定数组长度
2、动态初始化:初始化时由程序员只指定数组长度,由系统为数组元素分配初始值...
                            
                            
                                分类:
编程语言   时间:
2014-07-20 10:13:28   
                                阅读次数:
203
                             
                    
                        
                            
                            
                                第九章字符串、字符和字节
这一块在初学的时候很容易被大家忽视,但字符串作为一种重要的数据类型,没有在C中显式的说明。这样看起来C++定义了string的数据类型实在是带来了不少福音。
如果想用C玩OJ或者数据结构与算法的话,这一章需要仔细阅读,因为这是你仅有能用到的字符串处理的标准库。
总结:
C的字符串标准库使用需要声明"string.h"。
strlen用于计算一个字...
                            
                            
                                分类:
其他好文   时间:
2014-07-19 13:14:19   
                                阅读次数:
178
                             
                    
                        
                            
                            
                                Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时 动态分配...
                            
                            
                                分类:
编程语言   时间:
2014-07-19 12:25:30   
                                阅读次数:
223
                             
                    
                        
                            
                            
                                REST 定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的 Web 服务REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计。REST Web 服务,其具体实现应该遵循四个基本设计原则: 原文显式地使用 HTTP 方法。无状...
                            
                            
                                分类:
其他好文   时间:
2014-07-19 00:36:08   
                                阅读次数:
226
                             
                    
                        
                            
                            
                                1.默认拷贝构造函数 1.1 编译器自动为我们合成一个拷贝构造函数。A(const A &). 1.2 对象复制的时机: a) 显式复制。 b) 使用对象做形参 c) 使用对象做返回值 d) 往容器中放入对象 #include #include #include using na...
                            
                            
                                分类:
编程语言   时间:
2014-07-18 15:32:55   
                                阅读次数:
312