摘要: 相同:1. 都不能被实例化,都可以通过继承实现其抽象方法2. 是抽象编程的技术基础不同:多继承。接口可以多继承,抽象类不可以字段。抽象类可以包含字段,接口不可以具体实现的成员。抽象类可以有具体实现的成员,接口不能struct。接口可用与值类型,Struct可以继承接口,抽象类不能can-do vs is-a。接口着重与can-do的关系,抽象类着重IS-A 的关系成员能否被public 等修饰。接口的所有成员都不能用public,private 等修饰符修饰 ,抽象类可以。 阅读全文
posted @ 2013-04-21 16:09 AlexHHC 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 线程池适合场合事实上,线程池并不是万能的。它有其特定的使用场合。线程池致力于减少线程本身的开销对应用所产生的影响,这是有前提的,前提就是线程本身开销与线程执行任务相比不可忽略。如果线程本身的开销相对于线程任务执行开销而言是可以忽略不计的,那么此时线程池所带来的好处是不明显的,比如对于FTP服务器以及Telnet服务器,通常传送文件的时间较长,开销较大,那么此时,我们采用线程池未必是理想的方法,我们可以选择“即时创建,即时销毁”的策略。(1) 单位时间内处理任务频繁而且任务处理时间短(2) 对实时性要求较高。如果接受到任务后在创建线程,可能满足不了实时要求,因此必须采用线程池进行预创建。(3) 阅读全文
posted @ 2013-04-21 13:58 AlexHHC 阅读(228) 评论(0) 推荐(0) 编辑
摘要: .NET在一个进程中准备了两个线程池,除了上篇文章中所提到的CLR线程池之外,它还为异步IO操作的回调准备了一个IO线程池。IO线程池的特性与CLR线程池类似,也会动态地创建和销毁线程,并且也拥有最大值和最小值。在使用异步IO方式读取了一段文本之后,下一步操作往往是对其进行分析,这就进入了计算密集型操作了。但对于计算密集型操作来说,如果使用整个IO线程池来执行,我们无法有效的控制某项任务的运算能力。因此在有些时候,我们在回调函数内部会把计算任务再次交还给独立的线程池。这么做从理论上看会增大线程调度的开销,不过实际情况还得看具体的评测数据。如果它真的成为影响性能的关键因素之一,我们就可能需要使用 阅读全文
posted @ 2013-04-21 12:18 AlexHHC 阅读(215) 评论(0) 推荐(0) 编辑
摘要: Readers and writers are queued separately. When a thread releases the writer lock, all threads waiting in the reader queue at that instant are granted reader locks; when all of those reader locks have been released, the next thread waiting in the writer queue, if any, is granted the writer lock, and 阅读全文
posted @ 2013-04-21 12:16 AlexHHC 阅读(88) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/yiwuzhi/blog/item/c5a2dba561dcbdbacbefd038.html1:单线程程序中推荐使用Dictionary,有泛型优势,不用装箱拆箱,且读取速度较快,容量利用更充分.2:多线程程序中推荐使用Hashtable, 要装箱拆箱,默认的Hashtable允许单线程写入,多线程读取,对Hashtable进一步调用Synchronized()方法可以获得完全线程安全的类型.而Dictionary非线程安全,必须人为使用lock语句进行保护,效率大减.3:Dictionary有按插入顺序排列数据的特性(注:但当调用Remove()删除 阅读全文
posted @ 2013-04-21 12:09 AlexHHC 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 是查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:网上答案:selecttop 10 * from A where ID >(select max(ID) from (selecttop 30 ID from A order by A) T) order by A我的答案:select top(10) * from A where ID not in (select top(30) ID from A order by ID) order by ID要求是查询表A中存在ID重复三次以上的记录,完整的查询语句如下:网上答案:selec 阅读全文
posted @ 2013-04-20 09:49 AlexHHC 阅读(192) 评论(0) 推荐(0) 编辑
摘要: iOS 静态库的创建和使用 阅读全文
posted @ 2013-03-16 22:36 AlexHHC 阅读(144) 评论(0) 推荐(0) 编辑
摘要: monotouch可以使用匿名delegateaButton.TouchUpInside += (o,s) => { Console.WriteLine("button touched");};aButton.TouchUpInside += delegate { Console.WriteLine ("button touched");}; 阅读全文
posted @ 2013-03-08 17:23 AlexHHC 阅读(134) 评论(0) 推荐(0) 编辑