CLR via C# 读书笔记 4-2 线程和锁的一些使用原则
时间:2010-12-02 来源:听说读写
2.在读多写少的情况,使用读写锁ReaderWriterLockSlim (不要使用ReaderWriterLock), 因为这样读操作之间不会互斥
3.尽量不要使用递归的锁 ,当然Moniter是个例外,他虽然使用了递归, 但是他的性能也挺好的,(lock关键字内部就是使用Moniter, Moniter其实使用本地代码执行,而不是托管代码,所以性能比较ok)
4.不要在finally方法里面释放锁(lock就是这样做的),因为这样在抛出异常的时候数据玩玩有问题,那么执行了finally以后,下一个被堵塞的线程就进来执行了,那么他将在错误的状态上执行 (我个人对这个持保留意见....)
5.在执行计算任务的时候,推荐使用Task来替代线程同步, 特别是Task中的ContinueWith
6.在执行I/O任务的时候,推荐使用APM异步编程模型加上回调函数来处理
7.
相关阅读 更多 +