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+"执行完毕");
        }
        
    }

  • 相关阅读:
    nginx 正向代理 反向代理 负载均衡
    nginx配置文件常用基本配置指令
    92)http 和https协议入门
    tp6--nginx下pathinfo配置
    tp6省略url里的index.php
    echarts鼠标移上去显示数据
    composer 下载thinkphp6失败
    tp5写入cookie失效
    4.15 Spring Cloud理论基础
    4.14 SpringBoot理论基础
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/12171661.html
Copyright © 2011-2022 走看看