什么是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(...)。
总共四步,就创建出了高性能的服务器与客户器。
1