I googled on this , but still could not get a solid understanding. I could not find any particular example that uses FutureTask(Runnable runnable, V result)
constructor
Java doc says
Future submit(Runnable task, T result)
Submits a Runnable task for execution and returns a Future representing that task. The Future's get method will return the given result upon successful completion.
Looking at this my understanding is upon task completion futureTask.get() it will send us back the given result object passed which has nothing to do with the "Runnable" job. This is kind of a signal that the "Runnable "job is completed.
Any concrete usecase or any real life example would be really helpful
Also in conjunction to Enno's answer how it is different from using isdone() possibly in a loop.
Edited
Also why not wait notify?