天下任我行
allowmego
全部博文(46)
2013年(4)
2012年(12)
2011年(3)
2010年(5)
2009年(16)
2008年(6)
风林火山
yangyefe
wzongrui
sww_lyu
sxwxyfp
三角湖的
yanhaili
suse110
childish
分类: Java
2009-05-23 10:13:26
//------------------------------------------------------------ //TestThreadPool.java //package cn.simplelife.exercise; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class TestThreadPool { private static int produceTaskSleepTime = 2; private static int consumeTaskSleepTime = 2000; private static int produceTaskMaxNumber = 10; public static void main(String[] args) { // 构造一个线程池 ThreadPoolExecutor threadPool = new ThreadPoolExecutor(2, 4, 3, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(3), new ThreadPoolExecutor.DiscardOldestPolicy()); for (int i = 1; i <= produceTaskMaxNumber; i++) { try { // 产生一个任务,并将其加入到线程池 String task = "task@ " + i; System.out.println("put " + task); threadPool.execute(new ThreadPoolTask(task)); // 便于观察,等待一段时间 Thread.sleep(produceTaskSleepTime); } catch (Exception e) { e.printStackTrace(); } } } /** * 线程池执行的任务 * * @author hdpan */ public static class ThreadPoolTask implements Runnable { private static final long serialVersionUID = 0; // 保存任务所需要的数据 private String threadPoolTaskData; ThreadPoolTask(String tasks) { this.threadPoolTaskData = tasks; } public void run() { // 处理一个任务,这里的处理方式太简单了,仅仅是一个打印语句 System.out.println("start .." + threadPoolTaskData); try { // 便于观察,等待一段时间 Thread.sleep(consumeTaskSleepTime); System.out.println("stop .." + threadPoolTaskData); } catch (Exception e) { e.printStackTrace(); } threadPoolTaskData = null; } } }
上一篇:Unbuntu安装显卡驱动 envyng
下一篇:ThreadPoolExecutor与FutureTask 例程
登录 注册