首页 > 编程语言 >java声明不同线程池

java声明不同线程池

时间:2024-03-27 12:11:21浏览次数:25  
标签:java Thread 3s 任务 线程 延时 new 执行 声明

  • 声明一个静态线程池
public static final ExecutorService POOL;

    private static ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("COMMON-POOL-%d").build();

    static {
        POOL = new ThreadPoolExecutor(20, 40, 300,
                TimeUnit.MILLISECONDS, new LinkedBlockingDeque<>(20),
                namedThreadFactory,
                new ThreadPoolExecutor.AbortPolicy());
    }

调度任务的线程池
● ScheduledExecutorService
● fixedRate:固定频率执行,等考虑任务执行时间是否超过频率时长,如果超过则任务结束后立刻执行,没有超过则按照设置的频率时间来执行

  pool.scheduleAtFixedRate(() -> {
            System.out.println(Thread.currentThread() + "_" + simpleDateFormat.format(new Date()));
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //启动程序延时两秒,间隔3s执行
        }, 2, 3, TimeUnit.SECONDS);
//启动延时2秒开始执行
//固定三秒后再吃执行,判断任务有没有有3s内执行结束,执行结束就执行,没有结束就等任务结束后立即执行,
比如任务执行2s,rate=3s,那就是3s执行一次,如果任务5s查过rate,那就是等任务结束后5s执行一次

fixedDelay:固定延时,指的是任务执行完后延时时间,任务执行1s,延时2s那就是3s执行一次

  pool.scheduleWithFixedDelay(() -> {
            System.out.println(Thread.currentThread() + "_" + simpleDateFormat.format(new Date()));
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }, 5, 3, TimeUnit.SECONDS);

//启动延时五秒开始执行
//等任务执行完后再延时三秒执行一次 所以执行间隔是5s

 

标签:java,Thread,3s,任务,线程,延时,new,执行,声明
From: https://www.cnblogs.com/coderdxj/p/18098680

相关文章

  • 数据结构-二叉搜索树(Java实现)
    1.概念二叉搜索树也叫做二叉排序树,如果中序遍历,这棵二叉搜索树的结果就是有序的,它是具备以下性质的二叉树:若它的左子树不为空,则左子树上所有结点的值都小于根节点的值若它的右子树不为空,则右子树上所有结点的值都大于根节点的值它的左右子树也分别为二叉搜索树{5,3,......
  • 数据结构-排序算法(Java实现)
    1.插入排序1.1基本思想把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。1.2图解 1.3原理解析第一趟:一组数据可以分为有序序列和无序序列, i表示无序序列的第一个元素,j表示有序序列的......
  • Java8递归生成树
    @Data@BuilderpublicclassMenu{/***id*/publicIntegerid;/***名称*/publicStringname;/***父id,根节点为0*/publicIntegerparentId;/***子节点信息*/publicList<Menu>......
  • Java集合排序
    packagecom.example.demo;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List;publicclassTestApp{/**Comparable是一个内部比较接口,通常对象需要内部排序时直接实现Comparator是一个外......
  • java毕业设计基于微信小程序的图书馆预约[附源码]
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,微信小程序凭借其无需下载安装、使用方便的特点,已经成为人们日常生活中不可或缺的一部分。图书馆作为知识传播的重要场所,在......
  • Java语言程序设计2
    第二章、变量、数据变量、运算符、表达式一、变量1.概念:计算机中的一块内存空间,存储数据的基本单元2.变量的组成部分:数据类型,变量名,数据3.语法:(1)先声明,在赋值:    数据类型变量名;//声明    变量名=值;//值(2)声明同时并赋值:    数据类型变量......
  • java的封装
    封装概述    java中的封装指的是将一系列有关的事物的共同属性和行为提取出来放到一个类中,隐藏对象的实行和现实细节,仅对外提供公共的访问方式的操作。这样说起来感觉很抽象,也不好理解,这里不妨举一个例子。将配置电脑这个动作看成封装。    这个要怎么理解呢......
  • Java进阶 - [1-4] 反射
      一、类加载区别当我们刚接触java语言的时候,我们最常见的代码应该就是初始化某个对象,然后调用该对象的方法。1、使用new创建对象,返回对象的引用。Studentstudent=newStudent();2、调用方法:student.say(); 当我们想在运行期才能指定具体对象的类型或调用的某个方法......
  • 浏览器工作原理与实践--渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的
    在上篇文章中,我们介绍了渲染流水线中的DOM生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。这里还是先简单回顾下上节前三个阶段的主要内容:在HTML页面内容被提交给渲染引擎之后,渲染引擎首先将HTML解析为浏览器可以理解的DOM;然后根据CSS样式表,计算出DOM......
  • 浏览器工作原理与实践--渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的
    在上一篇文章中我们介绍了导航相关的流程,那导航被提交后又会怎么样呢?就进入了渲染阶段。这个阶段很重要,了解其相关流程能让你“看透”页面是如何工作的,有了这些知识,你可以解决一系列相关的问题,比如能熟练使用开发者工具,因为能够理解开发者工具里面大部分项目的含义,能优化页面卡......