线程池+返回值Future

        ExecutorService executor = Executors.newSingleThreadExecutor();
                // 使用Callable接口作为构造参数
		FutureTask<String> future = new FutureTask<String>(new Callable<String>() {
			public String call() throws InterruptedException {
				// 真正的任务在这里执行,这里的返回值类型为String,可以为任意类型
				return "call 返回数值!!";
			}
		});
		executor.execute(future);
		// 在这里可以做别的任何事情
		try {
			String result = future.get(2000, TimeUnit.MILLISECONDS); 
			System.out.println(result);
		} catch (InterruptedException e) {
			future.cancel(true);
		} catch (ExecutionException e) {
			future.cancel(true);
		} catch (TimeoutException e) {
			future.cancel(true);
		} finally {
			executor.shutdown();
		}

猜你喜欢

转载自my.oschina.net/u/2605948/blog/1787831