zoukankan      html  css  js  c++  java
  • 关于java 线程池 ThreadPoolExceutor 之 TestDemo

    public class App {
    public static void main(String[] args) throws InterruptedException {
    System.out.println("这是测试项目");

    // ExecutorService executorService=Executors.newCachedThreadPool();
    // Executors.newSingleThreadExecutor();
    // Executors.newFixedThreadPool(100);
    ExecutorService executorService = Executors.newFixedThreadPool(5);

    // ThreadPoolExecutor executor = new ThreadPoolExecutor(5, 10, 200,
    // TimeUnit.MICROSECONDS,
    // new ArrayBlockingQueue<Runnable>(5));

    while (true) {
    for (int i = 0; i < 10; i++) {
    Mytask mytask = new Mytask(i);
    //executor.execute(mytask);
    executorService.execute(mytask);

    // System.out.println("线程池线程数目"+executor.getPoolSize()+"
    // 等待的任务数目"+executor.getQueue().size()
    // +",已执行完别的任务数目:"+executor.getCompletedTaskCount());

    System.out.println("当前线程活动数目:" + ((ThreadPoolExecutor) executorService).getActiveCount() + ",等待的任务数目:"
    + ((ThreadPoolExecutor) executorService).getTaskCount() + ",已执行完别的任务数目"
    + ((ThreadPoolExecutor) executorService).getCompletedTaskCount());
    }
    //executorService.shutdown();
    //executor.shutdown();
    System.out.println("主线程睡眠10秒 再执行~~~~~~~~~~~~~~~");
    Thread.sleep(10000);
    }
    }
    }

    -----------------------------------------------------------

    public class Mytask implements Runnable {
    private int taskNum;

    public Mytask(int num) {
    this.taskNum = num;
    }

    @Override
    public void run() {
    System.out.println("正在执行task" + this.taskNum);
    try {

    Thread.currentThread();
    Thread.sleep(4000);

    } catch (InterruptedException e) {

    e.printStackTrace();
    }
    System.out.println("task" + taskNum + "执行完毕");

    }

    }

    --------------------注解
     
    得到 ExecutorService 当前活动的线程数
     
    https://blog.csdn.net/yingzishizhe/article/details/8769907
     
    Java并发编程:线程池的使用(重点需要看)
     
    http://www.cnblogs.com/dolphin0520/p/3932921.html
     
    Java通过Executors提供四种线程池
     
    https://www.cnblogs.com/webglcn/p/5265901.html
     
    Executors创建的4种线程池的使用
     
    https://www.cnblogs.com/ljp-sun/p/6580147.html

     

  • 相关阅读:
    Java菜鸟之java基础语法,运算符(三)
    Lotus迁移到Exchange 2010 POC 之Domino Server的配置!
    hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
    【targeting学习笔记】Display Advertising Targeting
    Domino 迁移到Exchange 之 Domino Admin 安装!
    sqlite3使用详解(Qt版本)
    .net反混淆脱壳工具de4dot的使用
    破解NET的四大神器(转)
    C#让应用程序只运行一个实例的几种方法
    Windows server 2008 R2实现多用户远程连接
  • 原文地址:https://www.cnblogs.com/chengjun/p/9274945.html
Copyright © 2011-2022 走看看