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
)?