スレッドで2秒ごとにサーバーにリクエストを送信し、何かがあるかどうかを確認しようとしています。値を取得するには、callableを使用する必要があります。2秒ごとに呼び出し可能なスレッドを実行してそこから値を取り戻す方法を理解できません...呼び出し可能な実装のサンプルコードは次のとおりです...
public String call(){
boolean done = true;
String returnData = "";
while(done){
try {
returnData = post.getAvailableChat();
if(!returnData.equals("")){
System.out.println("Value return by server is "+returnData);
return returnData;
}
return null;
} catch (IOException ex) {
done = false;
Logger.getLogger(GetChatThread.class.getName()).log(Level.SEVERE, null, ex);
}
これが私のメインクラスのコードです。ここでメインクラスで間違ったことをしたのは、whileループの後でコードが次の行に移動しないためです。しかし、その方法を教えてください。
Callable<String> callable = new CallableImpl(2);
ExecutorService executor = new ScheduledThreadPoolExecutor(1);
System.err.println("before future executor");
Future<String> future;
try {
while(chatLoop_veriable){
future = executor.submit(callable);
String serverReply = future.get();
if( serverReply != null){
System.out.println("value returned by the server is "+serverReply);
Thread.sleep(2*1000);
}//End of if
}//End of loop
} catch (Exception e) {