zoukankan      html  css  js  c++  java
  • 线程超时处理

    当执行一个耗时的操作,又不想影响已有的功能,我们可以做超时处理,当某个业务逻辑超过特定的时间时我们主动放弃断续执行下面的逻辑。

    简单的代码实现

    参考代码如下:

    package easyfind.test;
    
    import java.util.concurrent.Callable;
    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;
    
    /**
     * @author tank
     * @email kaixiong.tan@qq.com
     * @date:2015年7月30日 上午11:19:20
     * @description:
     * @version :0.1
     */
    
    public class TestThreadTimeOut {
    
    	public static void main(String[] args) {
     
    		TestThreadTimeOut.Task task = new TestThreadTimeOut().new Task();
    
    		FutureTask<String> futureTask = new FutureTask<String>(task);
    		
    		//ExecutorService executor = Executors.newCachedThreadPool();
    		//executor.submit(futureTask);
    		//executor.shutdown();
    		
    		Thread thread = new Thread(futureTask);
    		thread.start();
    
    		String result=null;
    		try {
    			result = futureTask.get(5, TimeUnit.SECONDS);//设置超时时间
    		} 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();
    			System.out.println("超时了");
    		}
    		
    		 
    
    		System.out.println(result);
    
    		System.out.println("结束");
    
    	}
    
    	class Task implements Callable<String> {
    		@Override
    		public String call() throws Exception {
    			System.out.println("子线程请求中");
    			Thread.sleep(3000);//这里做耗时的处理业务逻辑
    
    			return "test";
    		}
    	}
    }
    

      

  • 相关阅读:
    JavaScript深复制
    Javascript Date Format
    SqlHelper include Transaction
    JQuery 对 Select option 的操作---转载
    转载:SQL索引一步到位
    转载 SQL Server 2008 R2 事务与隔离级别实例讲解
    使用Log Explorer查看和恢复数据
    SqlServer正在执行的sql语句
    SQL Server Reporting Services – Insufficient Rights Error
    asp.net 间传值的方法
  • 原文地址:https://www.cnblogs.com/tankaixiong/p/4688826.html
Copyright © 2011-2022 走看看