正如标题所示,如何从另一个线程取消阻塞调用,例如 select() 或(在串行通信和类似的情况下)read()?解决此类问题的传统方法是什么?我想可以使用一个小的超时,这可能会工作得很好,但对我来说这似乎有点黑客攻击。
最佳答案
中断select(2)
的传统方式是self-pipe trick
。通过使用描述符非阻塞和处理EAGAIN
可以更好地服务输入/输出调用。
关于multithreading - 如何取消阻塞调用,例如 select() 或 read()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7016977/