Future method was comes in asynchronous process i.e annotated as @future.
It is basically used for http callout using callout=true inthrough trigger.
Like @future(callout=true)
Future method wait until the resources isn’t available. We can also use it to avoid mix dml operation errors.
There are limitations on future method
1. We can’t able to pass collection data type ( list, set, map) as parameters only primitive data type allowed.
2. It is hard to monitor.
3. We can’t able to return anything so return type is always void.