- 协程理论
- 协程解决同步下的异步效率的需求,
- 三级协程结构的代码 :github.com/wangbojing/NtyCo
- 协程如何使用?
- 编译时,-L 和 -I的区别。
- timewait 是什么时候?
- 项目代码怎样维护?怎样添加新的代码?才是方便的。
- hook是什么? init_hook() 又是什么?dlsym()又是怎么截获的?
8.c++的这样的内部变量还有哪些?都是什么含义?
9.非协程链接mysql的过程是怎样的?
10.那协程是怎样处理链接mysql的过程的?
- 协程是一个壳
- 将每一个IO操作包裹,
- 检测是不是可写的?
- 如果不可以 存放到epoll中
- 跳出
- 检测fd 池
- 有无就绪
- 没有再次轮询
11.mysqlclient 的开发接口应该有哪些?怎么实现的?参考mysql_oper.c 回答
- 增删改查
- 存储过程
- 二进制的添加和读取。
12.数据库的存储过程是什么?
13.协程和内存池
- 内存池
- tcmalloc
- jemalloc
14.面试题: 对多进程中的hook之间是抢占式惊群还是先申请先使用?
15.协程 和 线程 可以混用吗? 可以为什么?不可以为什么?
16.辨析:协程的性能怎么样?
- 之所以用协程是因为性能高?
- 不是协程高,是异步高
- 协程比epoll要快?
- 两者没有比较的角度。
- 管理IO情况: 协程 < reactor/epoll
从io 管理的角度去看,协程也是使用了epoll 实现的。
协程轻量级线程?
17.泛泛之谈
- 并发量: fd的数量和协程的数量是一致的。
- 每秒的接入量, 每次申请fd 之后,coroutine create。
- 断开连接后, coroutine_destroy
- 发送文件数量、读写文件书数量,本质也是io的使用
- 涉及网络时,一定要先用iperf测一下网络的带宽
- 百万并发代码: mul_port_client.c
18.多核的问题:
- 能做cpu粘合的 只有进程和线程
- 协程想做怎么办? 只能借助 多进程,多线程。
- 每一个线程一个调度器 特点:简单,不需要加锁
- 多个线程公用一个调度器 ; 对与 调度器,入队时候需要加锁。
- 每一个进程一个调度器; 简单,
setjmp/longjmp 能否实现多个线程跳转?解答:(12条消息) Setjmp的支持多线程问题_anghlq的博客-CSDN博客