skynet
15 Aug 2019
|
skeynet-src [a] 与 linux kernel [b]
– atomic.h 原子操作
[a] gcc4.1.2版本后内置原子操作函数 sync 系列函数 [b] atomic_t/atomic64_t 类型 <linux/types.h>, 原子操作函数 <asm/atomic.h> / 原子位操作列表
– spinlock.h 自旋锁
最多只能被一个可执行线程持有。
[a] [b]
– rwlock.h 读写锁
如果读写锁当前没有读者,也没有写者,那么写者可以立刻获得读写锁,否则它必须自旋在那里,直到没有任何写者或读者。如果读写锁没有写者,那么读者可以立即获得该读写锁,否则读者必须自旋在那里,直到写者释放该读写锁。
[a] pthread_rwlock_* or rwlock base on sync 基于原子操作的读写锁