<dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-trace</artifactId> <version>${skywalking.version}</version> </dependency>
@TraceCrossThread public static class MyCallable<String> implements Callable<String> { @Override public String call() throws Exception { return null; } } ... ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(new MyCallable());
ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.submit(CallableWrapper.of(new Callable<String>() { @Override public String call() throws Exception { return null; } }));
or
ExecutorService executorService = Executors.newFixedThreadPool(1); executorService.execute(RunnableWrapper.of(new Runnable() { @Override public void run() { //your code } }));
@TraceCrossThread public class MySupplier<String> implements Supplier<String> { @Override public String get() { return null; } } ... CompletableFuture.supplyAsync(new MySupplier<String>());
or
CompletableFuture.supplyAsync(SupplierWrapper.of(()->{ return "SupplierWrapper"; })).thenAccept(System.out::println);
Sample codes only