网络编程
tcp/ip 多路io复用 reactor 等
阿兵云原生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BQ云盘项目三 - 功能接口设计
原创 2020-09-07 22:15:35 · 330 阅读 · 0 评论 -
BQ云盘项目二 -- mysql数据库表的设计
原创 2020-09-07 22:13:41 · 1910 阅读 · 0 评论 -
BQ云盘项目一 -- nginx+fastcgi+fastdfs+mysql+redis+c/c++
原创 2020-09-07 20:41:09 · 557 阅读 · 0 评论 -
互斥锁、自旋锁、原子操作
1、互斥锁 -- 临界区资源已经被1个线程占用,另一个线程过来访问临界资源的时候,会被CPU切换线程,不让运行后来的这个线程适用于 锁住的内容多,(例如红黑数的增加节点操作),切换线程的代价小于等待的代价2、自旋锁 --临界区资源已经被1个线程占用,另一个线程过来访问临界资源的时候,相当于是一个while(1),不断的查看这个资源是否可用,如果可用,就进去访问临界资源,如果不可用,则继续循环访问适用于锁住的内容少,(例如就执行++操作),切换线程的代价大于等待的代价3、原子操作 -- ...原创 2020-08-17 18:29:17 · 759 阅读 · 0 评论 -
网络IO 之 reactor
百万级高并发,可以使用epoll模型,那么io是存放在哪里的? reactor反应堆如何实现reactor反应堆?1、将epoll 里面的客户端fd 节点,做成event,event里面携带io的相关数据2、accept的时候,只关心,读取数据和发送数据一般情况下,客户端连接上服务器之后,会先发数据给服务器,因此连接后,服务器这边的做法先是 读取客户端套接字里面的信息,再是做send操作编码写一个demo#include <stdio.h>...原创 2020-08-26 17:40:21 · 303 阅读 · 0 评论 -
网络IO 多路IO复用 之 epoll
网络IO 多路IO复用selectpollepollepoll用于多路io复用,具体是如何实现的?内部使用epoll_create()epoll_ctl()epoll_wait()3个函数来实现 多路io复用epoll模型的底层是用红黑树来处理的其中的水平触发和边沿触发的区别? ET 是recvbuf 从没有数据到有数据,就会触发 LT 是 recvbuf里面有数据 就会一直触发 大块数据 用 LT ...原创 2020-08-25 17:53:57 · 338 阅读 · 0 评论 -
网络IO 多路IO复用 之 select
网络IO 多路IO复用selectpollepoll为什么要用多路io复用呢?如果不用多路io复用,可以开辟多个线程,或者一个线程循环的去读取每个io的数据,这样的开销是非常的大的,而且会大大的影响系统的性能,因此引入多路io复用select 用于多路io复用,具体是如何实现的?内部使用fd_set的方式来进行实现,因为做select 只需要标志自己内部的fd 可用还是不可用,则相当于是1个bit位, 0/1的取值。因此使用fd_set 位图的方式来进行对sel...原创 2020-08-25 17:03:40 · 249 阅读 · 0 评论 -
网络IO 之 信号驱动型io
五种网络IO阻塞IO非阻塞IO多路IO复用异步IO信号驱动IO 信号驱动IO -- 通过信号的方式来触发 信号处理函数执行相应的逻辑功能,类似于异步的一个过程编写代码进行信号驱动IO的调试和确认: 写一个udp的demo#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <stdio.h>#include <...原创 2020-08-25 16:08:20 · 432 阅读 · 0 评论
分享