httpd高并发的实现
来源:互联网 发布:太平洋官方软件 编辑:程序博客网 时间:2024/06/05 06:48
框架:httpd+socket+IO多路复用(epoll)+多线程
实现:创建套接字并绑定端口号,epoll_create 5个IO,并把listen套接字的fd注册到epoll中,等待fd触发。然后开始死循环,listen套接字触发后,产生新的connect套接字并注册到epoll中。然后connect套接字触发,利用主线程接收将客户端发送的请求,将接收到的信息传给子线程并利用httpd解析,然后回送给主线程并返回给客户端。
注意:
多线程的使用及同步:互斥锁加条件变量
add() { pthread_mutex_lock(lock_s); sum++; pthread_mutex_unlock(lock_s); if(sum>=100) pthread_cond_signal(&cond_sum_ready); } print { pthread_mutex_lock(lock_s); while(sum<100) pthread_cond_wait(&cond_sum_ready, &lock_s); printf(“sum is over 100!”); sum=0; pthread_mutex_unlock(lock_s); return OK; } //pthread_cond_wait(),必须在pthread_mutex_lock()之后执行,pthread_cond_wait()在进入阻塞之后释放锁,等待pthread_cond_signal()触发之后再重新加锁;所以pthread_cond_signal(),则需要在pthread_mutex_unlock()之后执行。 //示列与主题无关
两个锁与islock == 一个锁(没有islock)
主要函数:pthread_cond_wait 主要文件:pthreadpoll.cpp
阅读全文
0 0
- httpd高并发的实现
- 高并发的socket实现
- ConcurrentHashMap 高并发性的实现机制
- ConcurrentHashMap 高并发性的实现机制
- ConcurrentHashMap高并发性的实现原理
- ConcurrentHashMap 高并发性的实现机制
- 高并发二级缓存的简单实现
- ConcurrentHashMap 高并发性的实现机制
- ConcurrentHashMap如何实现高并发性的
- 实现网站的高并发访问
- MVCC如何实现InnoDB的高并发
- nginx实现高并发的原理
- Web网站架构的高并发实现
- ConcurrentHashMap 高并发、高吞吐量的线程安全HashMap实现
- 实现高性能高并发的计数器功能
- 12306是如何实现高流量高并发的关键技术
- 高性能高并发架构的实现要素
- CentOS 6.4 Heartbeat+httpd+nfs实现高可用的web服务器
- Radar Installation(贪心)
- 微信公众号接收回复
- Laravel基础-Eloquent ORM 模型
- Java线程从零开始(三)——进一步认识线程之生命周期
- H.264编码实验
- httpd高并发的实现
- BZOJ 1052 覆盖问题题解
- 数据类型与变量
- 数组(一)
- POJ 1065 Wooden Sticks 最长不上升子集 偏序定理
- 查看实时刷新刷新日志
- Python解释器-Windows下的安装
- 编程题——判断扑克牌大小
- zookeeper集群无法正确启动