线程A总结了从10个客户端传递的数据.
while(true){
Socket clientfd= server.accept ();
BufferedReader message = new BufferedReader(new InputStreamReader (clientfd.getInputStream() ) );
String val = message.readLine();
this.sum_data+=(message.readLine();
message.close ();
clientfd.close ();
this.left--;
if(this.left==0){
System.out.println(this.sum_data);
break;
}
}
线程B不断与客户沟通,无论他们是否活着(心跳技术).
问题是客户端有时会失败,在这种情况下,总结数据的线程应该只打印出来自活动客户端的所有可能结果.否则,它将永远不会打印出结果.
所以,如果heartbeat线程注意到一个客户端没有响应,有没有办法让它告诉另一个线程(或更改其他线程的类变量this.left)?