0

run-method拡張するクラス内にありますThread。コードニップ:

    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

このエラーメッセージが私に伝えようとしているのは、OS関連のものに関して、スレッドが進行中でありspinlock、実行中であるということだと思います。Busy waitingしかし、なぜ Busy 待機を行うのか、私は実際にストリームを読んで何かをしているのです。誰かが私を正しい方向に特定できますか? ありがとう!

4

0 に答える 0