The core of the future model is the removal of the wait time for the main function and the time period that would otherwise have to wait for processing other business logic (according to Java Program Performance optimization).
The future mode is somewhat similar to a commodity order. When you shop online, after you submit your order, you don't have to wait at home at the time of receipt to do something else. When it comes to programming, when a request is submitted, it is expected to get a reply if the reply is likely to be slow. The traditional time waits until this reply receives the time to do other things, but if uses the future design pattern to wait for the reply arrival, waits for the reply the process to be possible to do other things.
For example, the following request calls the process sequence diagram. When a call request is made, it takes a long time to return. The diagram on the left needs to wait until the data is returned before other operations can be resumed, while the client on the right side of the future pattern does not have to wait for other things to do. When a server segment receives a request and returns the result to the client immediately, the result is not a real result (a virtual result), that is, a false data is obtained first, and then other operations are performed.
Java Future Mode core idea (turn)