lock代码片断锁用来控制只有单条被执行,但是听说会带来应用的并发性能问题,那么请问下有哪些主法可以替换或是解决lock问题呢!?
设计共享锁和独占锁,当读取时使用共享锁,写入时才使用独占锁。另外锁定的数据颗粒度尽可能小。这样就可以最大限度保证并发。
只要注意不该锁的别锁,锁的时间尽量短,别多出锁的时候没搞好弄成死锁就行。
用对了就不会有问题,仅在同步时降低性能,这是无可避免的,为了数据安全、正确只得如此。
不并发就可以了
用容量来提高速度
首先必须确定是不是必须用代码片段lock;
其次,分析加锁的代码片段,找出真正需要单条执行的语句,缩小锁的范围,对于简单类型锁,使用InterLocked提供一些方法,你可以先自己看看;对于数据库级的锁,把锁交给数据库去维护.
最后,重构代码,将必须单条执行的语句提炼成单元函数,然后使用"单消费者-多生产者"模式重写业务逻辑.