javaでUDP通信を行ないたいのですが、データの受信を以下のようにスレッドで設計しました。

void run(){
DatagramSocket sock = new DatagramSocket(port);
while(true){
sock.receive(datagram);

処理…
}
}

この処理中に新しいパケットが届いた時、ループが返ってきた時にそのパケットはちゃんと処理されるのでしょうか?教えて下さい、よろしくお願いします。