1. 程式人生 > >skynet學習之spinlock.h

skynet學習之spinlock.h

今天學習了spinlock檔案。

這是一個關於鎖的定義。雲風大神提供了兩種支援,你可以根據巨集USE_PTHREAD_LOCK來選擇鎖的方式。這兩張這次都是通過巨集和定義行內函數的方式實現的。

如果定義了USE_PTHREAD_LOCK:

則引用pthread.h,使用linux系統自帶的執行緒庫裡的pthread_mutex_xxxx互斥鎖API。

如果未定義USE_PTHREAD_LOCK:

則利用原子操作__sync_lock_test_and_set來實現。