eventfd原理通俗解析
职能分离:IO线程专门处理数据的收发,计算线程专门处理业务逻辑。
问题:当计算线程接收到要发送给客户端的数据时,不能直接发送,必须由IO线程发送怎么办?
计算线程要通知IO线程发送数据,涉及到线程之间的通信,子线程通知子线程。
eventfd可以完成线程间通信(它的功能可以类比于timerfd)
eventfd中的write()函数和read()函数通过同一个文件描述符进行读写,在一个线程中调用write()可以使内核计数器增加8字节整数,另一个线程中调用read()函数,它可以发现计数器有值的变化,这样就可以进行线程间通信了。