vtcp QIO 解析

发布时间:2015-10-14编辑:VTCP阅读:70

    什么是QIO,Q可以理解为 Quick(快速),也可以理解 Queue(队列),实际上其原理就是一个快速的任务队列操作,内部包涵高效的线程池任务分配代码,可以把VTCP内部事件快速的分配给应用层的线程池进行并行的处理。


    QIO的优点,QIO吸收了ICOP+EPOLL双重优点;他像 EPOLL 接口一样,首先要应用层提交关心的事件,然后再像 IOCP 一样利用用户线程池从队列里取出1个事件来处理。线程池循环的取事件,处理事件,周而复始;QIO允许用户像IOCP一样,给线程池投递自定义事件。


    QIO使用步骤
    第一步:创建出VTCP_QIO_HANDLE,通过vtcp_qio_create()函数。

    第二步:创建出N个用户线程池,循环调用vtcp_qio_get(...)取事件,然后更具事件类型去处理。

    第三步:创建出VTCP_HANDLE,通过vtcp_socket/vtcp_socketshare,设置句柄为非阻塞模式,进行监听或者连接。

    第四部:关联VTCP_HANDLE事件到VTCP_QIO_HANDLE上通过vtcp_qio_set(...)。


    总共四步,就创建出了高性能的服务器与客户器。


    QIO支持连接可高达60000以上基本与理论设计目标65535个vtcp支持的最大句柄数量一致。


关键字VTCPQIO