您的位置:首页 > 编程语言 > Java开发

java ThreadPool判断是否所有任务都完成的方法

2015-09-25 16:38 537 查看
@Test
	public void test() {
		ExecutorService threadPool = Executors.newCachedThreadPool();
		Future<String> future1 = threadPool.submit(new Callable<String>() {
			@Override
			public String call() throws Exception {
				// TODO Auto-generated method stub
				for (int i = 0; i < 100000; i++)
					;
				return null;
			}
		});
		Future<String> future2 = threadPool.submit(new Callable<String>() {
			@Override
			public String call() throws Exception {
				// TODO Auto-generated method stub
				for (int i = 0; i < 100000; i++)
					;
				return null;
			}
		});
		// 停止加入新线程
		threadPool.shutdown();
		// 当任务1和任务2都完成之后,才算完成.
		while (!(future1.isDone() && future2.isDone())) {
			System.out.println("f1:" + future1.isDone());
			System.out.println("f2:" + future2.isDone());
		}
		System.out.println("work accomplished");
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: