nginx
meetyanfei
这个作者很懒,什么都没留下…
展开
-
ngx_shmtx_lock 分析
作用 在nginx中,此锁用于共享内存分配时上锁,用于进程互斥以及进程内线程互斥。 初始化 ngx_shmtx_create 函数实现 ngx_int_t ngx_shmtx_create(ngx_shmtx_t *mtx, ngx_shmtx_sh_t *addr, u_char *name) { mtx->lock = &addr->lock; if (mtx->spin == (ngx_uint_t) -1) { return NGX_OK原创 2020-05-21 23:50:47 · 698 阅读 · 0 评论 -
nginx 自旋锁学习
用途 spin_lock的使用场景是你预知很快能获得资源,快速把cpu用起来。 nginx源码: void ngx_spinlock(ngx_atomic_t *lock, ngx_atomic_int_t value, ngx_uint_t spin) { #if (NGX_HAVE_ATOMIC_OPS) ngx_uint_t i, n; for ( ;; ) { if (*lock == 0 && ngx_atomic_cmp_set(lock原创 2020-05-19 23:45:10 · 338 阅读 · 0 评论 -
nginx 线程池详解
nginx 线程池详解 基础知识: 需要了解队列、条件变量相关知识。 nginx异步思想,线程池设计同样如此。 A线程准备任务-----post任务-------线程池唤醒一个线程处理--------通过回调通知A线程处理完毕。整体就是这个样子的 以下是更详细的流程,有点长,捡着你想看的看。 线程池初始化 代码如下: static ngx_int_t ngx_thread_pool_init(ngx_thread_pool_t *tp, ngx_log_t *log, ngx_pool_t *pool)原创 2020-05-17 22:00:40 · 1441 阅读 · 0 评论