线程池,在多线程开发考虑并发性能优化时都会考虑使用线程池。
public class MyTask implements Runnable { PRivate int taskNum; public MyTask(int taskNum) { this.taskNum = taskNum; } @Override public void run() { System.out.println("正在执行任务task:" + taskNum); try { Thread.currentThread().sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("task:" + taskNum + " 执行完毕!"); }}b)创建线程执行类Test.javaimport java.util.concurrent.ThreadPoolExecutor;import java.util.concurrent.TimeUnit;import java.util.concurrent.ArrayBlockingQueue;public class Test { public static void main(String[] args) { ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(5)); for (int i = 0; i < 15; i++) { MyTask mytask = new MyTask(i); executor.execute(mytask); System.out.println("线程池中的线程数目:" + "" + executor.getPoolSize() + ",队列中等待执行的任务数目:" + executor.getQueue().size() + ",已执行完成的任务数目:" + executor.getCompletedTaskCount()); } /* * try { Thread.sleep(5000); } catch (InterruptedException e) { * e.printStackTrace(); } * * System.out.print("--------:"+executor.getCompletedTaskCount()); */ executor.shutdown(); }}未完待续......
新闻热点
疑难解答