protected Runnable associateWithSubject(Runnable r) {
        Subject subject = getSubject();
        return subject.associateWith(r);
    }
Utility method for subclasses to associate the argument {@code Runnable} with the currently executing subject
and then return the associated Runnable.  The default implementation merely defaults to
<pre>
Subject subject = {@link #getSubject() getSubject()};
return subject.{@link Subject#associateWith(Runnable) associateWith(r)};
</pre>

@param r the argument runnable to be associated with the current subject
@return the associated runnable instance reflecting the current subject
core/src/main/java/org/apache/shiro/concurrent/SubjectAwareExecutor.java