final Duration timeout = Duration.ofSeconds(30); ExecutorService executor = Executors.newSingleThreadExecutor(); final Future<String> handler = executor.submit(new Callable() { @Override public String call() throws Exception { return requestDataFromModem(); } }); try { handler.get(timeout.toMillis(), TimeUnit.MILLISECONDS); } catch (TimeoutException e) { handler.cancel(true); } executor.shutdownNow();
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter