我正在尝试在我的代码中实现自旋锁,但我基于 Wikipedia 实现的自旋锁导致性能极慢。
int lockValue = 0;
void lock() {
__asm__("loop: \n\t"
"movl $1, %eax \n\t"
"xchg %eax, lockValue \n\t"
"test %eax, %eax \n\t"
"jnz loop");
}
有什么方法可以改进它以使其更快吗?
谢谢。