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

  • 相关阅读:
    asp.net 页面生命周期事件详细
    linux服务nfs与dhcp篇
    linux服务samba与ftp篇
    官网Android离线文档下载
    Android发布apk后解决百度地图不显示的问题
    win10和office2013激活
    Android-Intent and Intent Filters
    Android设置透明状态
    Android获取屏幕大小(Px)
    我的java web之路(JSP基本语法)
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/12171661.html
Copyright © 2011-2022 走看看