zoukankan      html  css  js  c++  java
  • 利用线程池复用线程

    package thread.pool;
    
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class Demo1 {
    	public static void main(String[] args) {
    		/**
    		 * 线程池案例
    		 * 1:利用线程池复用线程减少反复创建线程次数
    		 *      提高线程使用效率
    		 * 2:利用线程池保护线程总数,避免服务器的资源
    		 *      使用过载
    		 *      
    		 */
    		//利用工厂方法newFixedThreadPool创建一个线程池对象
    		ExecutorService pool =Executors.newFixedThreadPool(10);
    		//创建10个任务交给线程池,复用线程执行
    		for(int i =0 ;i <=10; i++) {
    		//创建被线程执行的任务
    		Runnable task =new PrintTask(i);
    		pool.submit(task);
    		}
    	}
    }
    
    /** 被线程池执行的任务 */
    class PrintTask implements Runnable {
    	int n;
    
    	public PrintTask(int n) {
    		this.n = n;
    	}
    
    	public void run() {
    		Thread t = Thread.currentThread();
    		for (int i = 0; i < 10; i++) {
    			System.out.println(t + "task:" + n);
    			try {
    				Thread.sleep(100);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    		}
    		System.out.println(n+"over!");
    	}
    }
    

      

  • 相关阅读:
    ubuntu10官方镜像安装硬盘自动分区失败的问题
    ubuntu10的pci扩展卡驱动安装失败后检查方法
    day7集合
    day6字符编码
    day5 dict
    day4 list,tuple
    day2 int,bool,str
    day1
    函数一
    注册登录
  • 原文地址:https://www.cnblogs.com/xyk1987/p/8383833.html
Copyright © 2011-2022 走看看