Я пытаюсь написать метод, который создает поток, который работает после того, как этот метод уже вернулся.Мне нужно, чтобы этот поток истек через определенное время.
У меня есть рабочее решение, но я не уверен, что это лучший способ сделать это.
new Thread(() -> {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Void> future = executor.submit(new Callable() {
public Void call() throws Exception {
workThatTakesALongTime();
});
try {
future.get(timeoutMillis, TimeUnit.MILLISECONDS);
} catch (Exception e) {
LOGGER.error("Exception from timeout.", e);
}
}).start();
Есть ли лучший способ сделать это без использования ExecutorService в потоке?