Ваша задача запланирована по фиксированной ставке.Это означает, что пока вы не отмените задание, оно будет выполняться исполнителем снова и снова с фиксированной ставкой.Единственное, что может сделать такая задача - это побочный эффект.Он не может ничего вернуть, поскольку будущее, возвращаемое исполнителем, представляет все ожидающие выполнения задачи.Кстати, вы заметите, что метод schedule
принимает Callable в качестве аргумента (который может привести к чему-либо), тогда как метод sceduleAtFixedRate
принимает только Runnable в качестве аргумента (который возвращает void, поэтому не может ничего вернуть).
Итак, если вы хотите напечатать результат каждого выполнения, то просто заставьте саму задачу (Runnable) напечатать свой результат, или пусть runnable поместит свой результат в очередь блокировки, и у вас будет основной поток take
из очереди.Таким образом, основной поток будет заблокирован до тех пор, пока какой-либо результат не будет помещен в очередь.