zoukankan      html  css  js  c++  java
  • ThreadPoolExecutor 线程池Demo

    package threadPoolExecutor;
    import java.util.concurrent.ArrayBlockingQueue;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
     
    //自定义线程池
     
    public class ThreadPoolExecutorDemo {
     
        public static void main(String[] args) {
            ArrayBlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(5);
            ThreadPoolExecutor pool = new ThreadPoolExecutor(5, 10, 200, TimeUnit.MILLISECONDS, queue);
            for(int i=0; i<15; i++){
                MyTask myTask = new MyTask(i);
                pool.execute(myTask);
                System.out.println("线程池中的线程数目:"+pool.getPoolSize()+",队列中等待执行的任务数量:"+pool.getQueue().size()+",已执行完的任务数目:"+pool.getCompletedTaskCount());
                
            }
            pool.shutdown();
        }
     
    }
     
     
    class MyTask implements Runnable{
        
        private int taskNum;
        
        public MyTask(int num){
            this.taskNum = num;
        }
        
        public void run(){
            System.out.println("正在执行task " + taskNum);
            try {
                Thread.sleep(4000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("task "+taskNum+"执行完毕");
        }
        
    }

  • 相关阅读:
    P1280 尼克的任务
    P2286 [HNOI2004]宠物收养场
    筛法求素数
    拓扑排序
    观光旅游
    [USACO09OCT]热浪Heat Wave
    Java环境变量配置
    git 常用命令
    mysql-5.7安装、配置
    maven-java包管理工具-01
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/12171661.html
Copyright © 2011-2022 走看看