1. 程式人生 > >java執行緒池中任務執行完成後再次執行

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);//執行緒次中的任務執行完成後再次執行
		}
	}