在使用java中的套接字(socket)时,下列代码实现中,哪些选项可能会导致主线程长时间阻塞? () A. Socket s = new Socket(“10.116.123.112”, 6526); InputStream stream = s.getInputStream(); // use thread read data B. Socket s = new Socket(“10.116.123.112”, 6526); s.setSoTimeout(2000) InputStream stream = s.getInputStream(); // use thread read data C. Socket s = new Socket(); s.connect(new InetSocketAddress(“10.116.123.112”, 6526), 1000); InputStream stream = s.getInputStream(); // use thread read data D. Socket s = new Socket(); s.connect(new InetSocketAddress(“10.116.123.112”, 6526)); InputStream stream = s.getInputStream(); // use thread read data
时间: 2024-04-19 19:29:29 浏览: 193
选项A和选项D可能会导致主线程长时间阻塞。
在选项A中,主线程在调用`getInputStream()`方法后没有设置读取数据的超时时间,如果没有数据可读,主线程将一直阻塞在该方法调用处。
在选项D中,主线程在调用`connect()`方法后没有设置连接超时时间,如果连接无法建立,主线程将一直阻塞在该方法调用处。
选项B和选项C中,都设置了超时时间,可以避免主线程长时间阻塞。
阅读全文