Java 线程池的理解记录

最近要面临着找工作了,所以恶补下java核心API的东东! 下面是对java线程池的理解记录:
在应用程序中,创建一个线程是一个开销较大的动作,如果应用程序中要使用搭理的线程来处理一些固定的工作,需要反复的创建线程---明智的做法是:我们预先创建一些线程对象,当需要执行任务的时候,就取出线程对象执行任务,执行完毕后又放回线程池。。理解和数据库是一样的概念!
下面看测试代码:

public class MainTest extends Thread {
	public static void main(String args[]) {
		ExecutorService es=Executors.newFixedThreadPool(10);
		Runnable r=new Runnable(){
			public void run(){
				
				String name=Thread.currentThread().getName();
				count++;
				try {
					Thread.sleep(1000);
				System.out.println("线程名是|:"+name+"  "+System.currentTimeMillis());
				} catch (InterruptedException e) {
					e.printStackTrace();
				}			
			}	
		};
		for(int i=0;i<50;i++){
                //2种方法,体现出线程池的作用
		         //es.execute(r);利用线程池,一次创建了10个线程,所以一次只能运行10个线程,其他需要运行的线程对象需排队等候,前面的线程执行完成后才能被执行!
			//Thread t=new Thread(r);不用到线程池,一次开启50的线程!
			//t.start();
		}
		es.shutdown();
	}
	private static int count;
}

你可能感兴趣的:(java,thread,工作)