Using Java 7 I am trying to build a watcher that watches a data store (some collection type) and then will return certain items from it at certain points. In this case they are time stamps, when a timestamp passes the current time I want it to be returned to the starting thread. Please see code below.
@Override
public void run() {
while (!data.isEmpty()) {
for (LocalTime dataTime : data) {
if (new LocalTime().isAfter(dataTime)) {
// return a result but continue running
}
}
}
}
I have read about future and callables, but they seem to stop the thread on a return.
I do not particularly want to return a value and stop the thread then start another task if using callable, unless it is the best way.
What are the best techniques to look for this? There seem to be such a wide range of doing it.
Thanks
BlockingQueue
instead of returning the result and have other threads get these results from the queue. – Faizabad