应用开发中经常使用多线程。多线程编程提高了程序的执行效率,很大程度上降低了主线程的开销。但同时可能带来data race,数据竞争是由于多线程同时访问一个变量,且至少一个是写操作。这时往往就需要使用到了锁,来保证数据的正确性。但是不当的使用可能带来其他问题,例如死锁。

锁分类

1.自旋锁
2.互斥锁
3.递归锁
4.读写锁
5.条件锁
6.信号量

你可能感兴趣的:(锁)