Выход из потока

У меня есть следующий блок кода:

public void startListening() throws Exception {
    serverSocket = new DatagramSocket(port);
    new Thread() {

        @Override
        public void run() {
            System.out.print("Started Listening");
            byte[] receiveData = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
            while (!stopFlag) {
                try {
                    serverSocket.receive(receivePacket);
                    String message = new String(receivePacket.getData());
                    System.out.println("RECEIVED: " + message);
                } catch (Exception ex) {
                    System.out.print("Execption :" + ex.getMessage());
                }
            }
        }
    }.start();
}


public void stopListening() {
    this.stopFlag = true;
}

Предположим, я установил для stopFlag значение true. serverSocket.receive(receivePacket);будет ждать, пока не получит пакет. Что мне делать, если я хочу, чтобы поток завершился, как только для параметра stopFlag установлено значение true.

5
задан Akhil K Nambiar 13 April 2012 в 07:30
поделиться