线程池概述
		
		█ 线程池的优点
			
			    ☞ 启动一个新线程的成本是比较高的,因为它涉及到与操作系统进行交互。这种情况下使用线程池可以更好的提高性能,尤其在当前程序需要创建大量的生存周期很短的线程时,更应该考虑使用线程池。(每次都new Thread() 需要耗费系统资源和开销,利用线程池就省去了多余的创建和销毁的步骤)
			
			█ 原理
			
			    ☞ 线程池里每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一次被使用。
			
		Java 从JDK5之后开始支持线程池
			
			█ JDK5提供了一Executors来产生线程池,有如下方法:
				
				public static ExecutorService newCachedThreadPool();
				
				public static ExecutorService newFixedThreadPool(int nThreads);
				
				public static ExecutorService newSingleThreadExecutor();
				
				█ 以上方法返回了一个ExecutorService ,该对象表示一个线程池,它可以执行Runable对象代表的线程。它提供了如下方法:
				
				█ submit(Runnable task);
				
				| TestMain.java | |
| package com.java.threadpool;
							 import java.util.concurrent.ExecutorService;
							 import java.util.concurrent.Executors;
							 public class TestMain {
							         public static void main(String[] args) {
							                 ExecutorService threadPool = Executors.newCachedThreadPool();
							                 MyTask task1=new MyTask();
							                 threadPool.submit(task1); 
							  //线程池会在池子里找个空闲线程执你的runable接口内的run方法。
							                 //threadPool.shutdown();  //启动一次顺序关闭,执行以前提交的任务,但不接受新任务。注释完这局话程序不会关闭,会一直开启等待新的任务;有了这句代码,当刚才的线程执行完毕线程就会退出
							         }
							 }
							 class MyTask implements Runnable{
							         public void run(){
							                 for(int i=0;i<=100;i++){
							                         System.out.println("MyTask.run()"+i);
							                 }
							         }
							 }
							 | //有shutdown | 
 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号