我想打一個HTTP請求,然後獲得響應,勾勒這裏:Java BufferedReader readline阻塞?
URLConnection c = new URL("http://foo.com").openConnection();
c.setDoOutput(true);
/* write an http request here using a new OutputStreamWriter(c.getOutputStream) */
BufferedReader reader = new BufferedReader(new InputStreamReader(c.getInputStream));
reader.readLine();
但我的問題是,如果我發送請求需要在收到響應之前很長一段時間,在通話時會發生什麼reader.readLine()以上?這個過程是否會繼續在CPU上運行/運行,或者它是否會從CPU中被取走,並在IO被讀取時被通知喚醒並再次運行?
如果它停留在CPU上,可以做些什麼來讓它下車並稍後通知?
有沒有這些答覆足以解釋你的問題?如果是這樣,你應該將其中一個標記爲你接受的答案。如果沒有,只需編輯你的問題來說明什麼還不清楚。 – jasonmp85 2010-05-28 08:10:38