关于锁的一些想法

1. 程序在进入临界区后有各种原因是被换出,中断,调度,阻塞等

2. 临界区内要短

3. spin lock要慎用,如果是使用spin lock,但是临界区太大,进入临界区的线程被调度,则另一个被调度的线程会忙等,白白浪费cpu,因此,一定要是多个cpu,且临界区很简单才能用spin lock,否则还是要容忍sleep带来的开销

4. 如果想用spin lock,但是不能确定这个lock的竞争情况和执行情况,可以用常规锁,执行代码,观察cpu 的利用率

你可能感兴趣的:(关于锁的一些想法)