【发布时间】:2013-03-08 19:06:30
【问题描述】:
有没有办法让BufferedReader.readLine() 不挂起?
我正在创建一个服务器:
- 检查客户端是否传递了任何输入。
- 如果不是,它会执行其他代码并最终循环返回检查客户端的输入。
如何在不运行readLine() 的情况下检查客户端是否传递了任何输入?如果我运行readLine(),线程会挂起,直到输入传递?
【问题讨论】:
-
为什么?如果您使用阻塞 I/O,服务器应该为每个客户端有一个单独的读取线程。
-
我不想为每个用户创建两个线程。我已经为每个用户创建了一个线程。
-
这是 Java I/O 库的不幸现实。您可以 1) 启动单独的线程进行读取 2) 使用 NIO 库 3) 不要使用 readLine() 并自己进行缓冲和行尾管理
标签: java bufferedreader