摘要:
随着多核CPU成为主流,并行程序设计亦成为研究领域的热门。Lock-Free编程无疑是其中的一朵奇葩。 阅读全文
摘要:
C#编译器提供了volatile关键字,该关键字可以用于下述类型的静态/实例字段:byte,sbyte,short,ushort,int,uint,char,float和bool。此外,我们还可以将volatile关键字应用于引用类型以及枚举类型的基础类型是byte,sbyte,short,ushot,int,uint,float和bool的枚举字段。volatile关键字告诉C#和JIT编译器不再在CPU寄存器中缓存字段,从而确保字段的所有读写操作都是对内存的读写,JIT编译器则确保其语义正确,这样就不必显式调用Thread的静态方法VolatileXXX了。
阅读全文
摘要:
内存模型对于任何编程语言的多线程并发/并行编程都是很重要的部分,发布这篇文章的目的在于为以后描述.NET多线程并发/并行编程做底层基础,尤其是在理解Lock-Free算法时。 阅读全文
摘要:
Lock-free 算法通常比基于锁的算法要好: 从其定义来看,它们是 wait-free 的,可以确保线程永远不会阻塞。 状态转变是原子性的,以至于在任何点失败都不会恶化数据结构。 因为线程永远不会阻塞,所以当同步的细粒度是单一原子写或比较交换时,它们通常可以带来更高的吞吐量。 在某些情况下,lock-free 算法会有更少的同步写操作(比如 Interlock... 阅读全文
摘要:
Singularity是一个新操作系统。它几乎完全用C#写成,只运行可验证的安全程序。Singularity的内核和运行时库只是系统的一部分。此外,还包含不安全代码。大部分代码都是用安全的C#写成的。 阅读全文