一个主线程A,负责socket I/O、信号、超时分发;线程池B,作为工作线程。
A线程读到数据后,压入队列,然后发送信号给工作线程(sem_post);工作线程处理结果后,调用buffereven_write向bufferevent缓存内写入数据,然后写管道通知主线程;主线程回调管道读函数,在读函数内设置bufferevent_enable(bev,EV_WRIATE). 这样 就做到了 在同一线程内。
当然也可借鉴网上资料,在每个线程内都采用libevent方式,然后通过管道通讯。本思路中是通过信号灯方式来通知工作线程。