Nginx源码分析-读写锁实现
最近有空看了一下nginx的源码,看到了其读写锁的实现比较有意思,所以记录一下。
首先看下nginx 对cas操作的实现
1 | static ngx_inline ngx_atomic_uint_t |
接下来是nginx对写锁的实现,nginx对锁的等待主要使用自旋等待
1 |
|
下面是nginx对读锁的实现
1 | void |
以下是取消锁定的代码实现
1 | void |
总结
nginx读写锁主要是使用CAS操作和自旋来实现的,通过锁的数值改变来进行加锁和解锁。
最近有空看了一下nginx的源码,看到了其读写锁的实现比较有意思,所以记录一下。
首先看下nginx 对cas操作的实现
1 | static ngx_inline ngx_atomic_uint_t |
接下来是nginx对写锁的实现,nginx对锁的等待主要使用自旋等待
1 |
|
下面是nginx对读锁的实现
1 | void |
以下是取消锁定的代码实现
1 | void |
nginx读写锁主要是使用CAS操作和自旋来实现的,通过锁的数值改变来进行加锁和解锁。