摘要: 文章原始出处http://xxinside.blogbus.com/logs/47617134.html预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&Monitor,C#线程同步(3)- 互斥量 Mutex,C#线程同步(4)- 通知&EventWaitHandle一家 这次终于不用说太多话了,某人看这一系列博客的反应总是“好长……”,以至于都不愿意看下去。在这一系列开篇之前,本想应该一、两个星期就能解决,结果每篇总要花上一星期左右。总想把涉及的所有方面都讲得尽量清楚明白,希望容易被看懂。于是总是不断陷于考虑如何串联各处的关系、要写个怎样的例子、细细考量MS. 阅读全文
posted @ 2013-10-09 13:07 小麻雀 阅读(788) 评论(0) 推荐(1) 编辑
摘要: 文章原始出处http://xxinside.blogbus.com/logs/47523285.html预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&Monitor,C#线程同步(3)- 互斥量 MutexWaitHandle一家 在前一篇我们已经提到过Mutex和本篇的主角们直接或间接继承自WaitHandle:Mutex类,这个我们在上一篇已经讲过。EventWaitHandle类及其派生类AutoResetEvent和ManualResetEvent,这是本篇的主角。Semaphore类,即信号量,我们下一篇再讲。 WaitHandle提供了若干用于.. 阅读全文
posted @ 2013-10-09 12:07 小麻雀 阅读(5373) 评论(0) 推荐(1) 编辑
摘要: 文章原始出处http://xxinside.blogbus.com/logs/47162540.html预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&Monitor什么是Mutex “mutex”是术语“互相排斥(mutuallyexclusive)”的简写形式,也就是互斥量。互斥量跟临界区中提到的Monitor很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。互斥量比临界区复杂,因为使. 阅读全文
posted @ 2013-10-09 11:17 小麻雀 阅读(4052) 评论(1) 推荐(3) 编辑
摘要: 文章原始出处http://xxinside.blogbus.com/logs/46740731.html预备知识:C#线程同步(1)- 临界区&Lock监视器(Monitor)的概念 可以在MSDN(http://msdn.microsoft.com/zh-cn/library/ms173179(VS.80).aspx)上找到下面一段话:与lock关键字类似,监视器防止多个线程同时执行代码块。Enter方法允许一个且仅一个线程继续执行后面的语句;其他所有线程都将被阻止,直到执行语句的线程调用Exit。这与使用lock关键字一样。事实上,lock 关键字就是用Monitor 类来实现的。例如:. 阅读全文
posted @ 2013-10-09 11:10 小麻雀 阅读(1856) 评论(0) 推荐(0) 编辑
摘要: 文章原始出处http://xxinside.blogbus.com/logs/46441956.html预备知识:线程的相关概念和知识,有多线程编码的初步经验。 一个机会,索性把线程同步的问题在C#里面的东西都粗略看了下。 第一印象,C#关于线程同步的东西好多,保持了C#一贯的大杂烩和四不象风格(Java/Delphi)。临界区跟Java差不多只不过关键字用lock替代了synchronized,然后又用Moniter的Wait/Pulse取代了Object的Wait/Notify,另外又搞出来几个Event……让人甚是不明了。不管那么多,一个一个来吧。临界区(Critical Secti.. 阅读全文
posted @ 2013-10-09 10:41 小麻雀 阅读(3113) 评论(0) 推荐(0) 编辑
摘要: 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解、对于设计意图的理解是否正确、合理。本文将对它们之间的区别进行一番剖析,试图给开发者提供一个在二者之间进行选择的依据。 理解抽象... 阅读全文
posted @ 2013-10-09 10:14 小麻雀 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 在使用面向对象的思想进行系统设计时,前人共总结出了7条原则,它们分别是:单一职责原则、开闭原则、里氏替换原则、依赖注入原则、接口分离原则、迪米特原则和优先使用组合而不是继承原则。1.单一职责原则(SRP)单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成。它的英文缩写是SRP,英文全称是Single Responsibility Principle。其实单一职责原则的意思就是开发人员经常说的“高内聚、低耦合”。也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。在设计模式中,所有的设计模式都遵循这一原 阅读全文
posted @ 2013-10-09 10:03 小麻雀 阅读(653) 评论(0) 推荐(0) 编辑