A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马张健 中级黑马   /  2012-5-27 13:05  /  1456 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  //创建线程池模拟普通客户来取号
   Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
     new Runnable(){
      public void run(){
       Integer number = NumberMachine.getInstance().getCommonManager().generateNewManager();
       System.out.println(number+"号普通客户正在等待服务……");
      }
     },
     0,
    Constants.COMMON_CUSTOMER_INTERVAL_TIME,
    TimeUnit.SECONDS);
   //创建线程池模拟快速客户来取号
   Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
     new Runnable(){
      public void run(){
       Integer number = NumberMachine.getInstance().getExpressManager().generateNewManager();
       System.out.println(number+"号快速客户正在等待服务……");
      }
     },
     0,
    Constants.COMMON_CUSTOMER_INTERVAL_TIME * 2,
    TimeUnit.SECONDS);
   //创建线程池模拟VIP客户来取号
   Executors.newScheduledThreadPool(1).scheduleAtFixedRate(
     new Runnable(){
      public void run(){
       Integer number = NumberMachine.getInstance().getVipManager().generateNewManager();
       System.out.println(number+"号VIP客户正在等待服务……");
      }
     },
     0,
    Constants.COMMON_CUSTOMER_INTERVAL_TIME * 6,
    TimeUnit.SECONDS);

本人对线程池的理解有些模糊,求高手讲一讲线程池的原理,以及线程池 Executors.newScheduledThreadPool(1).scheduleAtFixedRate()  常用的语法、参数代表什么意思和常用的几种方式。 谢谢!
     

1 个回复

倒序浏览
常用线程池:一、线程池,newFixedThreadPool:Executors.newScheduledThreadPool(arg0;参数arg0表示开启几个线程
二、单任务线程池,newSingleThreadExecutor:ExecutorService pool = Executors.newSingleThreadExecutor();表示开启1个线程
三、可变尺寸的线程池,newCachedThreadPool:ExecutorService pool = Executors.newCachedThreadPool(); 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们,并在需要时使用提供的 ThreadFactory 创建新线程。
常用方法:timer.execute(command);
        timer.scheduleAtFixedRate(command, initialDelay, period, unit);
command:线程执行命令,initialDelay:延迟多长时间后执行,period:周期,多久执行一次;unit:时间单位
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马