今天学习了spinlock文件。
这是一个关于锁的定义。云风大神提供了两种支持,你可以根据宏USE_PTHREAD_LOCK来选择锁的方式。这两张这次都是通过宏和定义内联函数的方式实现的。
如果定义了USE_PTHREAD_LOCK:
则引用pthread.h,使用linux系统自带的线程库里的pthread_mutex_xxxx互斥锁API。
如果未定义USE_PTHREAD_LOCK:
则利用原子操作__sync_lock_test_and_set来实现。
今天学习了spinlock文件。
这是一个关于锁的定义。云风大神提供了两种支持,你可以根据宏USE_PTHREAD_LOCK来选择锁的方式。这两张这次都是通过宏和定义内联函数的方式实现的。
如果定义了USE_PTHREAD_LOCK:
则引用pthread.h,使用linux系统自带的线程库里的pthread_mutex_xxxx互斥锁API。
如果未定义USE_PTHREAD_LOCK:
则利用原子操作__sync_lock_test_and_set来实现。