4
Thread A
正在总结从10个客户端传来的数据。2个线程如何相互沟通?
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;
}
}
Thread B
不断与客户沟通,他们是否还活着与否(心跳技术)。
问题是,客户端有时可能会失败,在这种情况下,总结数据的线程应该打印出活动客户端的所有可能结果。否则,它将永远不会打印出结果。
所以,如果心跳线程注意到一个客户端没有响应,有没有办法让它告诉其他线程(或更改其他线程的类变量this.left
)?