while{

recvfrom 1
recvfrom 2

}

こうやった場合とスレッドでrecvfromわけた場合ってシングルコアなら基本的に動き同じですよね。