在无限循环中,我不断检查来自套接字的接收消息并在循环中使用usleep()。但是我希望在没有使用无限循环内的usleep()的情况下使用替代方法。怎么做??
答案 0 :(得分:2)
请勿拨打usleep
。我永远不明白为什么有人会这样做。在recv
中使用阻塞套接字和阻止,或在select
或poll
中使用非阻塞套接字和阻止。
遵循您可以找到的任何合理的示例代码的模式,但如果您不知道自己在做什么,就不要制定反模式。
答案 1 :(得分:-1)
调用线程的执行可以通过调用usleep()使其休眠一段时间。 另一种方法是定义一个新的Thread来模仿中断(usleep),比如等待来自键盘的输入或信号的类型(这需要是周期性的,因为线程必须被恢复以处理响应线程)。 但是我的建议是为什么在有更简单的方法时让事情变得复杂。