G.U*_*U.N 3 java multithreading
我是java新手,我试图制作客户端 - 服务器形式.客户端和服务器可以相互聊天.所以我的客户端有2个线程用于2个任务:发送和接收消息.我想当我的SendThread从键盘字符串"Bye"读取时,我的客户端将停止2个线程.但问题是线程接收仍然执行BufferedReader的语句readline()所以它无法到达出口这里是我的代码:
try {
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (!stop) {
String temp = br.readLine();
if (temp.length() == 0) {
Thread.sleep(100);
}
else System.out.println(" Receiving from server: " + temp);
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
更新:对不起大家,因为我没有更清楚地解释.我的客户端有2个独立运行的线程.因此,此代码所在的ReceiveThread可以始终等待来自服务器的消息.SendThread也总是从键盘读取数据.因此,当我输入"Bye"时,SendThread会读取此字符串并停止客户端.问题是ReceiveThread正在执行,readLine()所以它无法自行停止.
| 归档时间: |
|
| 查看次数: |
6688 次 |
| 最近记录: |