码迷,mamicode.com
首页 > 其他好文 > 详细

kqueue流程分析

时间:2020-12-28 11:32:54      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:cto   个数   中断   gis   idt   fse   accept   分配   本地   

技术图片

 

0:selecter.open;46、47中断描述符,48kevent描述符
1:serverSocketChannel.open socket开启,49描述符
2:绑定端口
3:注册49socketchannel到selector上面
3.5:轮询48端口,轮询出一个数量,这里获取数据用的是nativeObject(java unsafe 内存分配),直接把触发的事件挪到kevents,根据数据的offset,和unsafe.getint直接得到文件描述符
4:轮询出49event描述符,发现是accept类型的,serverSocketChannel新建一个fd(50),再和clientAddress一起再新建一个socketChannl(fd=50),并绑定一个buffer到这个channel

5:channle.register(selector),fd注册,更新本地fdmap,并且更新kevents

 

kqueue流程分析

标签:cto   个数   中断   gis   idt   fse   accept   分配   本地   

原文地址:https://www.cnblogs.com/damiao-hungry/p/14172072.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!