资讯专栏INFORMATION COLUMN

Java执行器入门

YuboonaZhang / 2758人阅读

摘要:线程池在真正有任务的时候才初始化,随着任务变化而变化固定任务的线程池总共线程池活动的线程池数量一共得线程池活动的线程池数量,即正在处理任务的线程数量线

package com.ex;

import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;

public class Server {




private   ThreadPoolExecutor  executor;



public  ThreadPoolExecutor getExecutor(){
    return  this.executor;
}


public  Server(){
    

// executor=(ThreadPoolExecutor) Executors.newCachedThreadPool();// cache线程池在真正有任务的时候才初始化,随着任务变化而变化

    executor=(ThreadPoolExecutor) Executors.newFixedThreadPool(10);//固定任务的线程池
    System.out.println("总共线程池------------------------"+executor.getPoolSize());
    System.out.println("活动的线程池数量---------------------"+executor.getActiveCount());
}

public  void  excuteTask(Task  task){
        
      executor.execute(task);
      System.out.println("一共得线程池"+executor.getPoolSize());
        System.out.println("活动的线程池数量,即正在处理任务的线程数量"+executor.getActiveCount());
}

public static void main(String[] args) {
    Server  server=new Server();
    for(int i=0;i<100;i++){
        
        Task  task=new Task("线程id"+i);
        
        server.excuteTask(task);
    }
    /**

主线程不断询问线程组是否执行完毕
*/

    while(true){

if(server.getExecutor().getCompletedTaskCount()==100){

   System.out.println("总共线程池------------------------"+server.getExecutor().getPoolSize());
   System.out.println("活动的线程池数量---------------------"+server.getExecutor().getActiveCount());
   server.getExecutor().shutdown();
   break;

}

    }
    
}

}

package com.ex;

import java.util.Date;

public class Task implements Runnable{

private  String  name;
private  Date  date;

public  Task(String name){
    
    this.date=new Date();
    
    this.name=name;
    
    
    
    
}


@Override
public void run() {

    
    
    try {
        System.out.println(this.name+"----开始执行任务");
        Thread.sleep((long) (Math.random()*1000));
        System.out.println(this.name+"----结束执行任务");
    } catch (InterruptedException e) {
        
        e.printStackTrace();
    }
    
}

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64727.html

相关文章

  • JVM入门系列-JVM总览

    摘要:模板解释器和字节码解释器差不多,不一样的地方在于直接把对应的指令集转成本地代码编译器可以针对热点代码优化,执行开销较大,但是能够针对性的优化,效率最高垃圾收集器负责回收不再使用的对象,释放和整理内存简称。 (原发于知乎, 定期同步至segmentfault, 原文地址:知乎-JVM入门系列-JVM总览)Java宣称Write Once Run Everywhere,这意味着在一个平台上...

    娣辩孩 评论0 收藏0
  • Java入门姿势

    摘要:目录目录下文件是下的执行文件。是一门非常成熟且社区完备的语言。推荐几个社区博客园就这么简单想要入门的话就这么简单。 技术只是工具,文档只是说明书,仅此而已。 写在前面 工作4年有余,盲人摸象般的走过弯路,也投机取巧的领悟到过一些类似编程本质的东西。现在开始我计划回顾下我的编程生涯。在这里分享,同时也是对之前所学的巩固和整理。 理解编程 我先打个比方。人的大脑就像一台电脑主机。比如今天你...

    zhiwei 评论0 收藏0
  • java入门

    摘要:包含了支持服务开发的类,并为提供基础,如语言基础操作操作网络通信以及多线程等技术。在运行文件时,的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。支持多个线程同时执行,并提供多线程之间的同步机制。 1.什么是Java语言 简单地说,Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言。2009 年 Or...

    zhangfaliang 评论0 收藏0
  • Android自动化测试-从入门入门(1)Hello Testing!

    摘要:开始的开始最近在做上的自动化测试,从最初的第三方自动化测试框架到后来的,再到最终完成答疑君客户端一些核心流程的自动化测试,期间也是经历了各种大大小小的坑。 开始的开始 最近在做Android上的自动化测试,从最初的第三方自动化测试框架appium到后来的Android Support Testing Library,再到最终完成答疑君Android客户端一些核心流程的自动化测试,期间也...

    baiy 评论0 收藏0
  • Java 异常入门(1/2)

    摘要:所有能够处理该异常的方法,都来自一个叫做调用堆栈的方法列表。如果运行环境在调用堆栈中自始至终未能找到捕获这个异常的代码块,那么整个程序将终止运行。 本文尝试以尽可能详细的方式介绍 Java 当中的异常概念和处理机制。本文适合 Java 初学者阅读。 什么是异常 异常是发生在程序运行过程中的,阻断正常流程中的指令执行的事件。 当一个方法在执行当中发生错误时,这个方法就会创建一个特别...

    lucas 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<