import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; public class T { public static void main(String[] args) { // TODO Auto-generated method stub functionTimeout(2000); } public static void theFunction() { try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void functionTimeout(int seconds){ ExecutorService executorService= Executors.newSingleThreadExecutor(); FutureTask<String> future=new FutureTask<>(()-> { theFunction(); return "END"; } ); executorService.execute(future); try { future.get(seconds,TimeUnit.MILLISECONDS); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TimeoutException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
java 方法超时
猜你喜欢
转载自www.cnblogs.com/1886vip/p/10754674.html
今日推荐
周排行