您可以使用执行器:
ExecutorService executor = Executors.newCachedThreadPool();Callable<Object> task = new Callable<Object>() { public Object call() { return something.blockingMethod(); }};Future<Object> future = executor.submit(task);try { Object result = future.get(5, TimeUnit.SECONDS); } catch (TimeoutException ex) { // handle the timeout} catch (InterruptedException e) { // handle the interrupts} catch (ExecutionException e) { // handle other exceptions} finally { future.cancel(true); // may or may not desire this}
如果
future.get5秒钟后仍未返回,则抛出
TimeoutException。可以以秒,分钟,毫秒为单位配置超时,也可以将其配置为单位
TimeUnit。
有关更多详细信息,请参见JavaDoc。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)