我想发出一个 HTTP 请求,然后得到如下所示的响应:
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 上,有什么办法让它下车并在以后得到通知?