• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
manziluo
博客园 | 首页 | 新随笔 | 新文章 | 联系 | 订阅 订阅 | 管理

随笔分类 -  常用库学习

常用第三方库的学习和使用
 
状态线程
摘要:轻量级协程,使用单线程用setjump与longjump来实现状态转移,快速,安全。 1.初始化 2.创建线程 线程函数通过st提供的io实现 上下文切换 虚拟处理器 idle thread 信号转换为io事件 EDSM 一个线程模拟多线程 //打开udp if ((nfd = st_netfd_o 阅读全文
posted @ 2016-08-20 09:45 manziluo 阅读(276) 评论(0) 推荐(0)
libevent学习八(evbuffer)
摘要:1.evbuffer以队列的形式管理字节,从尾部添加,从头部取出(FIFO) 2.evbuffer内部存储形式是多个独立的连续内存 接口 //创建和删除 struct evbuffer *evbuffer_new(void);void evbuffer_free(struct evbuffer *b 阅读全文
posted @ 2016-08-20 09:18 manziluo 阅读(5226) 评论(1) 推荐(0)
libevent学习七(bufferevent)
摘要:1. 每个bufferevent 都拥有类型为struct evbuffer的input buffer和out buffer,分别供数据读取和数据写入使用。 2.读取和写入数据是通过编写和设置对应的回调函数进行,而调用回调函数的时机则根据水位是否满足来的,水位又是可以设置的。默认情况下读的低水位是0 阅读全文
posted @ 2016-08-20 09:17 manziluo 阅读(4527) 评论(0) 推荐(0)
libevent学习六(Connect listeners )
摘要:创建与释放 //backlog需要查询平台说明,在linux2.2以后 backlog就变成了已完成连接但未accept的队列的最大值(原来是处于syn状态的,现在换成sysctl 控制的参数tcp_max_syn_backlog) struct evconnlistener *evconnlist 阅读全文
posted @ 2016-08-20 09:16 manziluo 阅读(840) 评论(0) 推荐(0)
libevent学习五(Helper functions and types for Libevent)
摘要:基础类型 #ifdef WIN32 #define evutil_socket_t intptr_t #else #define evutil_socket_t int #endif ev_ssize_t 时间兼容函数 //前2个参数的计算结果放到第三个参数里面 #define evutil_tim 阅读全文
posted @ 2016-08-20 09:15 manziluo 阅读(386) 评论(0) 推荐(0)
libevent学习四(Working with events)
摘要:1.事件的分类 2事件的生命周期 --非 persistent event_del(nopending) 在callback中通过event_add(重新pending)构成循环 ^ ^ | | event_new(initialized) >event_add(pending)-->事件发生(ac 阅读全文
posted @ 2016-08-20 09:12 manziluo 阅读(674) 评论(0) 推荐(0)
libevent学习三(Getting an event_base)
摘要:1.一个event_base持有了一系列的事件,并监控和决定哪些事件需要激活, 2.每一个event_base背后都有一个支持其工作的方法(诸如select,poll,epoll,kquene...),默认情况会选择最快的方法,可以自定义设置 3.event_base可以被设置为lock状态,这样多 阅读全文
posted @ 2016-08-20 09:11 manziluo 阅读(553) 评论(0) 推荐(0)
libevent学习二(Working with an event loop)
摘要:Runing the loop #define EVLOOP_ONCE 0x01 #define EVLOOP_NONBLOCK 0x02 #define EVLOOP_NO_EXIT_ON_EMPTY 0x04 int event_base_loop(struct event_base *base 阅读全文
posted @ 2016-08-20 09:09 manziluo 阅读(492) 评论(0) 推荐(0)
libevent学习一
摘要:常见的异步IO存在的问题: 1.使用 fcntl(fd, F_SETFL, O_NONBLOCK);,为什么在处理上效率不好。 a.在没有数据可读写的时候,循环会不停执行,浪费掉大部分cpu b.每次尝试读写文件描述符,都会执行一次内核调用(recv,write),而系统调用耗时。 2.使用sele 阅读全文
posted @ 2016-08-20 09:06 manziluo 阅读(491) 评论(0) 推荐(0)
 

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3