1. 程序在进入临界区后有各种原因是被换出,中断,调度,阻塞等
2. 临界区内要短
3. spin lock要慎用,如果是使用spin lock,但是临界区太大,进入临界区的线程被调度,则另一个被调度的线程会忙等,白白浪费cpu,因此,一定要是多个cpu,且临界区很简单才能用spin lock,否则还是要容忍sleep带来的开销
4. 如果想用spin lock,但是不能确定这个lock的竞争情况和执行情况,可以用常规锁,执行代码,观察cpu 的利用率
版权声明:本文为tianqio原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。