Застрял в потоке, сдаваться - Android

У меня есть run-method внутри моего класса, который распространяется Thread, Codesnipp:

    public void run() {
        Log.i(TAG, "BEGIN mConnectedThread");
        byte[] buffer = new byte[1024];
        int bytes;

        Log.i("INSIDE RUN: ", "STARTING LISTNING FOR INPUTSTREAM" ); 
        // Keep listening to the InputStream while connected

        while (true) {
            try {
                // Read from the InputStream
                bytes = mmInStream.read(buffer);

                //Log.d("BYTES FROM THE DEVICE: ", Integer.toString(bytes));

            } catch (IOException e) {
                Log.e(TAG, "disconnected", e);

                break;
            }
        }
    }

Через некоторое время LogCat выдает мне следующую ошибку:

07-27 14:51:55.860: E/dalvikvm(17271): threadid=2: stuck on threadid=1187, giving up

Я предполагаю, что это сообщение об ошибке пытается сказать мне, что поток собирается в spinlock и делать Busy waitingс точки зрения операционной системы. Но почему занят занят, я на самом деле что-то делаю, читаю потоки. Кто-нибудь может указать мне в правильном направлении? Спасибо!

0 ответов

Другие вопросы по тегам