我正在Linux中设计一个C程序,其中将有两个线程。一个主线程是event_processor_thread,用于执行主要功能处理。第二个线程是event_dispatcher线程,始终在后台运行,实时写入和读取多个接口(非阻塞异步I / O)。
我在互联网上进行了一些研究,并发现实现非阻塞套接字I / O的最佳方法可以通过:
- libevent
select()
我选择了后者,因为它更容易,并且我最多只需要从/写入4个接口。
我清楚使用readfds
进行监听/读取机制,但我不确定如何使用writefds
!如果我将来自event_processor_thread的数据放入共享内存中,并使此事件分派程序线程从共享内存中读取并使用send()
写入,那么select会自动发送数据到套接字吗?这就是为什么我需要在select()
中使用writefds
的原因吗?
如果我的问题不够清晰,我很抱歉。我想要的基本上是一个非阻塞I/O线程,用于将事件从/到事件处理线程分派到外部接口。对此方面的任何输入都将不胜感激。谢谢!