@Override
    public <T> Future<T> submit(Callable<T> task) {
        task = wrapper.wrap(task);
        return delegate.submit(task);
    }
Inheritance is not recommended.
No inheritance makes the trace more intuitive.
e.g) class TraceExecutorService extends TraceExecutor {}
agent-module/agent-sdk/src/main/java/com/navercorp/pinpoint/sdk/v1/concurrent/TraceScheduledExecutorService.java