11 2015 档案

Linux System V Semaphore semget多进程同时创建缺陷解决方法
摘要:System V Semaphore的创建过程缺陷是创建与赋初值由两个函数完成,这会导致两个进程同时创建的话会出现竞争和不一致状态,即使是使用了IPC-EXCL标记。示例: 1 oflag = IPC-CREAT | IPC-EXCL | SVSEM-MODE; 2 if ( (semid = se... 阅读全文

posted @ 2015-11-30 11:37 BestWill 阅读(925) 评论(0) 推荐(1) 编辑

Condition Variable使用及其Thread Cancellation线程取消
摘要:条件变量Condition Variable的一般用法:唤醒用法: 1 struct { 2 pthread_mutex_t mutex; 3 pthread_cond_t cond; 4 //whatever variables maintain the condition... 阅读全文

posted @ 2015-11-28 22:13 BestWill 阅读(618) 评论(0) 推荐(1) 编辑

Linux select/poll和epoll实现机制对比
摘要:关于这个话题,网上已经介绍的比较多,这里只是以流程图形式做一个简单明了的对比,方便区分。 一、select/poll实现机制 特点: 1.select/poll每次都需要重复传递全部的监听fd进来,涉及用户空间和内核直接的数据拷贝。 2.fd事件回调函数是pollwake,只是将本进程唤醒,本进程需 阅读全文

posted @ 2015-11-26 01:18 BestWill 阅读(4640) 评论(0) 推荐(2) 编辑

Nginx 多进程连接请求/事件分发流程分析
摘要:Nginx使用多进程的方法进行任务处理,每个worker进程只有一个线程,单线程循环处理全部监听的事件。本文重点分析一下多进程间的负载均衡问题以及Nginx多进程事件处理流程,方便大家自己写程序的时候借鉴。一、监听建立流程整个建立监听socket到accept的过程如下图:说明:1.main里面调用... 阅读全文

posted @ 2015-11-25 16:18 BestWill 阅读(7580) 评论(3) 推荐(2) 编辑

Nginx 事件基本处理流程分析
摘要:说明:本文章重点关注事件处理模型。有兴趣的同学可以去http://tengine.taobao.org/book/查找更多资料。Tengine应该是淘宝基于Nginx自己做的修改。这个地址的文档还在不断的完善更新中,内容算是比较全面的。程序流程图:说明:一、进程生成顺序1.main(src/core... 阅读全文

posted @ 2015-11-23 23:08 BestWill 阅读(2930) 评论(0) 推荐(1) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示