我是C语言的新手,想了解多线程如何与套接字一起工作。
我了解如何创建线程,但不了解它们在这种情况下如何工作。
两个线程同时接收数据包。 当第一个线程进入receiveData函数并进行recvmsg()调用时,第二个线程是否会被阻塞,直到第一个线程接收到数据包并退出receiveData函数?
是否有某种方法可以防止其他线程被阻塞?
String activityName = "trackingActivity.class";
Intent intent = new Intent(this, activityName);
startActivity(intent);
答案 0 :(得分:1)
当您有两个这样的独立套接字时,它们是独立的-第一个线程将阻塞直到其套接字上的数据可用为止,第二个线程将阻塞直到其套接字上的数据可用为止。如果数据到达一个套接字而不是另一个套接字,则在到达数据的套接字上阻塞的线程将解除阻塞(recv
将返回)并循环直到没有更多数据可用为止。如果数据到达两个套接字,则两个线程将继续循环。