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 待機を行うのか、私は実際にストリームを読んで何かをしているのです。誰かが私を正しい方向に特定できますか? ありがとう!