Future,带返回执行结果的线程使用方式

时间:2022-04-29
本文章向大家介绍Future,带返回执行结果的线程使用方式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

FutureTask是Future的一种实现方式.

private final int count;

	public Counter(int count) {
		this.count = count;
	}

	public void get() throws InterruptedException {
		// 假设执行一些耗时的操作
		Thread.sleep(3000);
		System.out.println("counter:" + count);
	}
long start = System.currentTimeMillis();
		FutureTask<Counter> f = new FutureTask<Counter>(new Callable<Counter>() {
			@Override
			public Counter call() throws Exception {
				System.out.println("==================");
				return new Counter(1000);
			}

		});
		f.run();
		if (f.isDone()) {
			System.out.println("done.time-consuming:"
			        + (System.currentTimeMillis() - start) + "ms");
			f.get().get();
		}

控制台:

==================
done.time-consuming:1001ms
counter:1000