继承和组合都可以达到代码复用的目的,但是组合比继承更具灵活性。组合是通过引用已有类(一般为抽象类)或接口来实现复用的组合在运行时通过多态可以动态替换被组合的对象。继承是通过以子类继承父类方式来使父类的非私有成员可以被其子类使用。继承在类编译时就确定了继承来的方法和属性,无法在运行时动态改变从父类继承...
分类:
其他好文 时间:
2014-05-31 16:52:23
阅读次数:
196
大家使用多线程无非是为了提高性能,但如果多线程使用不当,不但性能提升不明显,而且会使得资源消耗更大。下面列举一下可能会造成多线程性能问题的点:死锁过多串行化过多锁竞争切换上下文内存同步下面分别解析以上性能隐患死锁关于死锁,我们在学习操作系统的时候就知道它产生的原因和危害,这里就不从原理上去累述了,可...
分类:
编程语言 时间:
2014-05-30 05:23:55
阅读次数:
316
同步服务为每个请求创建单一线程,由此线程完成请求任务:接收消息,处理消息,返回数据;这种情况下服务器资源对所有入栈请求开放,服务器资源被所有入栈请求竞争使用,如果入栈请求过多就会导致服务器资源耗尽宕机,或者导致竞争加剧,资源调度频繁,服务器资源利用效率降低。异步服务则可以分别设置两个线程队列,一个专...
分类:
其他好文 时间:
2014-05-29 16:55:36
阅读次数:
293
数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多,
粒度过大。阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象。
但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的...
分类:
数据库 时间:
2014-05-29 10:46:10
阅读次数:
616
原文:SQL Server 监控统计阻塞脚本信息 数据库产生阻塞(Blocking)的本质原因
:SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大。阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象。
但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻...
分类:
数据库 时间:
2014-05-29 08:28:08
阅读次数:
608
议题:布隆过滤器(Bloom
Filter)分析:BF由一个很长的二进制向量和一系列随机映射的函数组成,通过多个Hash函数将一个元素映射到一个Bit
Array中的多个点,查询的时候仅当所有的映射点都为1才能判断元素存在于集合内;BF用于检索一个元素是否在一个集合中,记忆集合求交集;优点是空间 和...
分类:
其他好文 时间:
2014-05-29 00:18:07
阅读次数:
324
背景以Code First方式编写简单代码,按源码执行过程,逐步讲解Entity
Framework工作原理。本系列博文系我学习Entity Framework 6 Code
First的总结之作。学习过程中参考了大量MSDN资料,因参考资料过多,且皆可从EF主页索引到,故不一一列举。所有阅读过的正...
分类:
其他好文 时间:
2014-05-28 18:40:06
阅读次数:
641
读取MySQL数据库的方法很简单:MySqlDataAdapter.Fill(DataTable
dataTable)方法填充数据。写入MSSQL数据库的方法也很简单:SqlBulkCopy.WriteToServer(DataTable
dataTable)方法批量插入数据。经过多次测试,程序上的...
分类:
移动开发 时间:
2014-05-28 09:03:49
阅读次数:
361
本篇从Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的类关系图开始,希望通过
本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。让我们来看看这几个类的关系图: 1.lock关键字 lo....
分类:
编程语言 时间:
2014-05-26 20:14:03
阅读次数:
318
【题目大意】有一个4x4规格的一个棋盘,现在有16个一面黑一面白的棋子分布在这个棋盘上。翻转一个棋子能够使它以及它上下左右的四个棋子从黑变白,从白变黑。现在问你至少要经过多少次操作才能够使得整个棋盘的颜色相同。【分析】考虑到是4x4的规模,想到用BFS枚举+判重。注意题目的内存限制是64MB,如果普...
分类:
其他好文 时间:
2014-05-25 20:41:18
阅读次数:
246