您的位置:首页 > 其它

多线程摘记

2016-02-14 17:45 309 查看
基元线程同步构造:

用户模式构造(速度快,适合频次比较高的情形,但等待时无法释放CPU资源):
1.Thread.VolatileWrite,VolatileRead和MemoryBarrier三个方法都是为了保证程序的顺序,禁止编译器优化。在声明变量时加上volatile关键字也可起到同样的效果,虽然简化了操作但会降低性能,声明的变量也有一些使用限制,例如自增变慢,无法使用ref传递等。
2.Threading.Interlocked类提供的所有方法都是原子操作,每个方法都建立了完整的内存栅栏,确保执行顺序。主要的方法包括Increment,Decrement,Add,Exchange,CompareExchange等。

内核模式构造(可以让资源竞争中输掉的线程停止自旋,节省CPU,但内存不会节省,资源可用时自动唤醒,但每次切换代价较大,适合频次比较小的情形):
System.Threading.WaitHandle.WaitXXX(...)方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: