Frameworks can add support for this annotation and offload the work to another thread if the current thread cannot be blocked. It's particularly useful for frameworks using a reactive execution model. Framework relying on this annotation must specify the exact behavior:
When this annotation is used on a class, all the methods declared by the annotated class are considered
blocking.
This annotation is not inheritable, so the user must repeat the annotation when sub-classing the class or overriding the method.
NonBlocking