当另一个线程上发生某些事件时,如何从recv()/ recvfrom()中退出?
示例代码
while ( anyConditionCheckingHere )
{
if (recv(...) < 0) // ALREADY waiting for message here after fulfilling conditions
{
}
}
现在,如果另一个线程正在后台运行并且该线程中发生了某个事件,那么当该事件发生时,如何停止等待消息或如何退出阻塞调用?
答案 0 :(得分:1)
您有2种可以想到的选择
答案 1 :(得分:1)
如果使用了线程,则无需担心在recv()
上阻塞。当下一个线程上发生事件时,它将由调度程序进行调度,并且事件将被处理,而第一个线程将继续在recv()
上阻塞。