摘要: /// <summary> /// 猫类 /// </summary> public class Cat { //委托声明 public delegate void Miaowhandler(Object sender, MiaowEventArgs e); //事件声明 public event 阅读全文
posted @ 2016-03-09 15:50 羊茶茶 阅读(181) 评论(0) 推荐(0) 编辑
摘要: SpinLock自旋锁如果由于垃圾回收,基于对象的锁对象开销太高,可以使用SpinLock结构。.NET 4以后版本可使用,如果你有很多个锁(如,一个列表里面的每一个节点)并且锁时间通常非常的短,使用SpinLock将很有用。你需要避免使用超过一个的SpinLock,并且不要调用任何可能阻塞的。除了... 阅读全文
posted @ 2015-11-02 15:35 羊茶茶 阅读(1689) 评论(0) 推荐(0) 编辑
摘要: Interlocked类是用于对变量进行原子操作的简单语句。如i++不是线程安全,它从内存中获得一个值,然后将这个值加1,然后又将值存回到内存中。这些操作可能被线程调度器中断。Interlocked类就提供了对增、减、改、读的方法的线程安全行为。使用Interlocked类比其他同步技术更快捷。然而... 阅读全文
posted @ 2015-10-22 08:41 羊茶茶 阅读(365) 评论(0) 推荐(0) 编辑
摘要: Deadlocks死锁过多使用锁同样可能出现问题。死锁中,至少有两个线程停止等待对方释放锁,因为都在等待对方而发生死锁,线程们进入无休止的等待。为了说明死锁,下面的代码通过SampleTask累的构造函数实例化了两个StateObject类型的对象,两个任务被创建:一个task运行Deadlock方... 阅读全文
posted @ 2015-10-19 17:34 羊茶茶 阅读(486) 评论(0) 推荐(0) 编辑
摘要: Race Conditions资源竞争如果两个或更多的线程通过同一对象并且共享状态不是同步的,一个资源竞争就可能发生。为了说明资源竞争,下面的例子定义了一个StateObject类,该类包含一个int类型字段和ChangeState方法。在ChangeState方法实现里面,这个状态变量根据是否为5... 阅读全文
posted @ 2015-10-19 11:45 羊茶茶 阅读(558) 评论(0) 推荐(0) 编辑