C#多线程同步

Monitor的常用方法:Enter和Exit都是静态方法,效率跟lock语句的四个花括号一样。

行使这二种艺术都有一个要小心的题目,就是在独占代码段里面如若引起了非常,可能会使“令牌”对象不被放飞,这样程序就会直接地死等

里头的WaitOne为等待方法,一贯等到Mutex 被保释截至。初步的景色下,Mutex
对象是居于自由状态的,而一旦推行了WaitOne方法之后,它

下去了。

 

就被捕获了,平昔到被调用了ReleaseMutex方法之后才被放走。

在.Net的某些对象里面,在读取里面的多少的还要还是可以修改数据,这类的靶子就是“线程安全”。
但对于自己编排的代码段而言,就不需拔取线程同步技术来保证数据的完整性和不易了。

 

C#,而使用 Mutex 就不需讲明一个“令牌”对象了,但要实例化之后才方可拔取:

纪事那一点:
1、假设一个对象(或变量)不会同时被五个其他线程访问,那么那多少个目的是不需采纳线程同步的。
2、若是尽管有两个线程同时做客一个对象,但他们所走访的数目或措施并不相同(不交叉),这这种情况也不需接纳线程同步。
比如说上例中的这么些公司内部假设有 T 和 Q 五人,但他们的工钱分别是由 A 和
B 首席执行官的,那么这一个工资的处理就不需要线程同步了。
3、如若一个目的会同时被五个其他线程访问,一般只需为这一个目的添加线程同步的代码,而其他线程是不需添加额外代码的。

相关文章