-
合理设计程序:尽量减少加锁的次数,把多个操作放到一个加锁的代码段中,减少加锁的次数。
-
使用原子操作:C++11提供了一些原子操作,比如atomic_compare_exchange_strong()等,可以用来替代锁,在某些场合可以有效提高性能。
-
使用锁的粒度更小的技术:比如读写锁、条件变量等,可以替代普通的互斥锁,减少锁的粒度,提高性能。
-
使用锁的粒度更大的技术:比如使用全局锁、细粒度锁等,可以减少锁的粒度,提高性能。
-
使用非阻塞技术:比如CAS操作,可以避免线程之间的阻塞,从而提高性能。