当主用户线程像这样在另一个线程中调用一系列方法时,我有点困惑
在主线程中:
otherThread.callMethod();
otherThread.callMethod();
otherThread.callMethod();
otherThread.callMethod();
otherThread.callMethod();
otherThread.callMethod();
otherThread.callMethod();
而callMethod
在另一个线程中,正在像这样从套接字写入和读取:
mmOutStream.write(buffer);
mmOutStream.flush();
while (!finished) {
if (mmInStream.available() > 0)
if ((char) (c = (byte) mmInStream.read()) != 'x') {
responseBuffer[responseBufferLen++] = c;
} else {
finished = true;
}
}
这显然是一个阻塞场景——但是虽然这些方法是按顺序调用的,但主用户线程并没有被阻塞。
我的意思是在所有按钮仍然有反应的情况下被阻止,用户可以毫无延迟地与屏幕进行交互。怎么可能?