多线程EXecutor 柜架示例

 

代码:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;

public class ExecutorTest {
    //网页数
    private static Integer pages=1;
    //执行标识
    private static boolean exeFlag=true;

    public static void main(String[] args) {
        //创建ExcutorService 连接池默认连接10个
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        while (exeFlag){
            if (pages<=100){
                executorService.execute(new Runnable() {
                    public void run() {
                        System.out.println("爬取了第"+pages+"网页....");
                        pages++;
                    }
                });
            }else {
                if(((ThreadPoolExecutor)executorService).getActiveCount()==0){ // 活动线程个数是0
                    executorService.shutdown(); // 结束所有线程
                    exeFlag=false;
                    System.out.println("爬虫任务已经完成");
                }
            }
            try {
                Thread.sleep(100); // 线程休息0.1秒
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}

运行结果:

 ExecutorTest
爬取了第1网页....
爬取了第2网页....
爬取了第3网页....
爬取了第4网页....
爬取了第5网页....
爬取了第6网页....
爬取了第7网页....
爬取了第8网页....
爬取了第9网页....
爬取了第10网页....
爬取了第11网页....
爬取了第12网页....
爬取了第13网页....
爬取了第14网页....
爬取了第15网页....
爬取了第16网页....
爬取了第17网页....
爬取了第18网页....
爬取了第19网页....
爬取了第20网页....
爬取了第21网页....
爬取了第22网页....
爬取了第23网页....
爬取了第24网页....
爬取了第25网页....
爬取了第26网页....
爬取了第27网页....
爬取了第28网页....
爬取了第29网页....
爬取了第30网页....
爬取了第31网页....
爬取了第32网页....
爬取了第33网页....
爬取了第34网页....
爬取了第35网页....
爬取了第36网页....
爬取了第37网页....
爬取了第38网页....
爬取了第39网页....
爬取了第40网页....
爬取了第41网页....
爬取了第42网页....
爬取了第43网页....
爬取了第44网页....
爬取了第45网页....
爬取了第46网页....
爬取了第47网页....
爬取了第48网页....
爬取了第49网页....
爬取了第50网页....
爬取了第51网页....
爬取了第52网页....
爬取了第53网页....
爬取了第54网页....
爬取了第55网页....
爬取了第56网页....
爬取了第57网页....
爬取了第58网页....
爬取了第59网页....
爬取了第60网页....
爬取了第61网页....
爬取了第62网页....
爬取了第63网页....
爬取了第64网页....
爬取了第65网页....
爬取了第66网页....
爬取了第67网页....
爬取了第68网页....
爬取了第69网页....
爬取了第70网页....
爬取了第71网页....
爬取了第72网页....
爬取了第73网页....
爬取了第74网页....
爬取了第75网页....
爬取了第76网页....
爬取了第77网页....
爬取了第78网页....
爬取了第79网页....
爬取了第80网页....
爬取了第81网页....
爬取了第82网页....
爬取了第83网页....
爬取了第84网页....
爬取了第85网页....
爬取了第86网页....
爬取了第87网页....
爬取了第88网页....
爬取了第89网页....
爬取了第90网页....
爬取了第91网页....
爬取了第92网页....
爬取了第93网页....
爬取了第94网页....
爬取了第95网页....
爬取了第96网页....
爬取了第97网页....
爬取了第98网页....
爬取了第99网页....
爬取了第100网页....
爬虫任务已经完成

Process finished with exit code 0

 

转载于:https://my.oschina.net/ch66880/blog/1525611

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值