<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="ltr"><br></div><div dir="ltr">Please do not write code like that. If you have a “service” put it behind an api/facade and do any concurrency controls there - make it a simple method call for the caller/user. </div><div dir="ltr"><br></div><div dir="ltr">Systems designed the way you propose are really hard to reason about except for the original designer.  Similar to DI and micro services. </div><div dir="ltr"><br></div><div dir="ltr">The system’s intent and operation are obscured. </div></div></blockquote><div><br></div><div>(I'm a bit confused which code you are referring to, because I didn't write the above code)</div><div><br></div><div>It is a design trade-off, and depends on the actual circumstance if an executor usage worth it or not (just like DI, and micro services, you win some, you lose some) but that is partially off-topic since we have already established that you don't think this is useful (it is completely pointless to repeat our previous conversation, because we are just going in circles).</div><div><br></div><div>However, currently we are talking about that Ron claimed that such an interface would be effectively equivalent to `Function<Supplier<T>, T>` or `Function<Supplier<T>, Supplier<T>>`, which is demonstrably false in my opinion, because you can't define the "T" at executor instantiation time for a reasonably useful executor..</div></div></div>