java线程池中任务执行完成后再次执行

最近做爬虫用到了线程池(我是创建一个固定线程数量的线程池,然后不断往里扔任务)

现在要求网站链接如果爬完后再次启动任务爬取链接,所以就想到在线程池中任务都执行完成后在重新启动任务.

demo如下:

public static void ex(Connection conn) throws InterruptedException{
		UrlTask urlTask = new UrlTask(7, conn);	// 自己的任务类
		ExecutorService pool = Executors.newFixedThreadPool(50);// 创建一个固定数量的线程池
		pool.execute(urlTask);
		pool.shutdown();
		boolean flag = pool.awaitTermination(1, TimeUnit.MINUTES); // 1分钟检测一次线程池中的任务是否执行完成
		if (!flag) {
			ex(conn);//线程次中的任务执行完成后再次执行
		}
	}


发布了90 篇原创文章 · 获赞 21 · 访问量 47万+

猜你喜欢

转载自blog.csdn.net/yx13649017813/article/details/47144643