@Override
    public void execute(@NonNull Runnable runnable) {
        Collection<TaskAwarePlugin> taskAwarePluginList = threadPoolPluginManager.getTaskAwarePluginList();
        for (TaskAwarePlugin taskAwarePlugin : taskAwarePluginList) {
            runnable = taskAwarePlugin.beforeTaskExecute(runnable);
            if (Objects.isNull(runnable)) {
                return;
            }
        }
        super.execute(runnable);
    }
@Test
    public void testInvokeTaskAwarePlugin() {
        TestTaskAwarePlugin plugin = new TestTaskAwarePlugin();
        executor.register(plugin);
        executor.submit(() -> {
        });
        executor.submit(() -> true);
        executor.submit(() -> {
        }, false);
        executor.execute(() -> {
        });
        Assert.assertEquals(7, plugin.getInvokeCount().get());
    }