黑马程序员技术交流社区
标题:
关于线程池的问题
[打印本页]
作者:
黑马张健
时间:
2012-5-27 13:05
标题:
关于线程池的问题
//创建线程池模拟普通客户来取号
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() 常用的语法、参数代表什么意思和常用的几种方式。 谢谢!
作者:
黑马11期李项京
时间:
2012-5-27 13:55
常用线程池:一、线程池,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:时间单位
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2