广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java并发编程之Executor接口的使用
  • 209
分享到

Java并发编程之Executor接口的使用

2024-04-02 19:04:59 209人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

一、Executor接口的理解 Executor属于java.util.concurrent包下; Executor是任务执行机制的核心接口; 二、Executo

一、Executor接口的理解

  • Executor属于java.util.concurrent包下;
  • Executor是任务执行机制的核心接口

二、Executor接口的类图结构

在这里插入图片描述

由类图结构可知:

  • ThreadPoolExecutor 继承了AbstractExecutorService接口;
  • AbstractExecutorService接口实现了ExecutorService接口;
  • ExecutorService继承了Executor接口;
  • 因此以下部分主要讲解ThreadPoolExecutor类。

三、Executor接口中常用的方法

void execute(Runnable command) 在将来的某个时间执行给定的命令。 该命令可以在一个新线程,一个合并的线程中或在调用线程中执行,由Executor实现。

四、线程池的创建分为两种方式(主要介绍通过ThreadPoolExecutor方式)

注:通过Executors类的方式创建线程池,参考lz此博文链接https://www.jb51.net/article/215163.htm

1.ThreadPoolExecutor类中的构造方法


public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,defaultHandler)

2、 ThreadPoolExecutor类中构造函数的参数解析

  • corePoolSize 核心线程最大数量,通俗点来讲就是,线程池中常驻线程的最大数量
  • maximumPoolSize 线程池中运行最大线程数(包括核心线程和非核心线程)
  • keepAliveTime线程池中空闲线程(仅适用于非核心线程)所能存活的最长时间
  • unit 存活时间单位,与keepAliveTime搭配使用
  • workQueue 存放任务的阻塞队列
  • handler 线程池饱和策略

3、ThreadPoolExecutor类创建线程池示例

代码


package com.xz.thread.executor;

import java.util.concurrent.*;


public class Demo {
    public static void main(String[] args) {
        ThreadPoolExecutor pool = new ThreadPoolExecutor(3,3,
                1L, TimeUnit.MINUTES,new LinkedBlockingDeque<>());
        for(int i=1;i<=5;i++){
            pool.execute(new Runnable() {
                @Override
                public void run() {
                    System.out.println(Thread.currentThread().getName());
                    try {
                        Thread.sleep(1000);
                        System.out.println("睡眠一秒钟");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    }
}

输出结果如下图

在这里插入图片描述

结论:无论是创建何种类型线程池(newFixedThreadPool、newSingleThreadExecutor、newCachedThreadPool等等),均会调用ThreadPoolExecutor构造函数。

在这里插入图片描述
在这里插入图片描述

到此这篇关于Java并发编程之Executor接口的使用的文章就介绍到这了,更多相关Java Executor接口内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java并发编程之Executor接口的使用

本文链接: https://www.lsjlt.com/news/128740.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java并发编程之Executor接口的使用
    一、Executor接口的理解 Executor属于java.util.concurrent包下; Executor是任务执行机制的核心接口; 二、Executo...
    99+
    2022-11-12
  • Java并发编程之CountDownLatch的使用
    目录前言基本使用await尝试获取锁获取锁失败countDown方法前言 CountDownLatch是一个倒数的同步器,和其他同步器不同的是,state为0时表示获取锁成功。常用来...
    99+
    2023-05-20
    Java并发编程CountDownLatch Java CountDownLatch使用 Java CountDownLatch
  • Java并发教程之Callable和Future接口详解
    刚把Thread 的知识理了一遍。 Runnable是一个接口,而Thread是Runnable的一个实现类。 所以也就有了之前创建线程的两种方法 继承Thread ...
    99+
    2022-11-12
  • Java并发编程之Semaphore的使用简介
    目录简介Semaphored的使用构造方法核心方法示例使用Semaphore实现互斥简介 Semaphore是用来限制访问特定资源的并发线程的数量,相对于内置锁synchroniz...
    99+
    2022-11-12
  • Java中的并发编程:如何使用接口来处理文件?
    Java是一种面向对象的编程语言,由于其简单易学、可移植性强、运行速度快等特点,被广泛应用于软件开发领域。在Java中,多线程编程是一项非常重要的技能。在本文中,我们将探讨如何使用接口来处理文件,以及如何在Java中进行并发编程。 一、什...
    99+
    2023-10-16
    并发 接口 文件
  • java并发之Lock接口的深入讲解
    目录Juc中各种各样锁信息synchronized面临缺点Lock接口Lock最佳实践:对比 Lock和tryLock的区别总结Juc中各种各样锁信息 在java的juc包为我们提...
    99+
    2022-11-12
  • Java并发编程之工具类Semaphore的使用
    一、Semaphore的理解 Semaphore属于java.util.concurrent包; Semaphore翻译成字面意思为信号量,Semaphore可以控...
    99+
    2022-11-12
  • Java并发编程之原子性-Atomic的使用
    目录线程安全线程安全主要体现在以下三个方面JUC中的Atomic包详解总结线程安全 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中...
    99+
    2022-11-13
  • 接口、数组和并发:Java编程的完美组合?
    Java作为一种高级编程语言,因其强大的功能和稳定性而备受开发者的青睐。在Java编程中,接口、数组和并发是三个非常重要的概念,它们的结合使用可以帮助开发者更加高效地完成各种任务。本文将探讨接口、数组和并发在Java编程中的应用,以及它们的...
    99+
    2023-10-18
    接口 并发 数组
  • 数组、接口和并发:Java编程的疑惑解答
    Java是一种广泛使用的编程语言,拥有着强大的面向对象的特性和丰富的标准库。在Java编程中,数组、接口和并发都是常见的概念,但是它们也是让新手感到困惑的地方。在本文中,我们将解答这些疑惑,并提供一些简单的示例代码来帮助您更好地理解。 数...
    99+
    2023-06-24
    数组 接口 并发
  • 如何使用Java高并发编程之Semaphore
    本篇内容主要讲解“如何使用Java高并发编程之Semaphore”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Java高并发编程之Semaphore”吧!共享锁、独占锁学习semapho...
    99+
    2023-06-15
  • java并发编程之深入理解Synchronized的使用
    1.为什么要使用synchronized 在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只...
    99+
    2022-11-12
  • Java并发编程的秘诀:接口和数组的应用技巧?
    Java并发编程的秘诀:接口和数组的应用技巧 Java是一门广泛使用的面向对象编程语言,在多线程编程方面也有很强的支持。Java并发编程的秘诀在于熟练掌握接口和数组的应用技巧。本文将从接口和数组两个方面介绍Java并发编程的秘诀,并且穿插演...
    99+
    2023-10-18
    接口 并发 数组
  • 接口和数组:Java并发编程中的关键因素?
    Java并发编程是一门复杂的学科,其中接口和数组是其中的两个关键因素。在本文中,我们将探讨这两个因素对Java并发编程的重要性,并演示一些相关的代码示例。 一、接口在Java并发编程中的作用 在Java并发编程中,接口是一种非常重要的概念。...
    99+
    2023-10-18
    接口 并发 数组
  • Java并发编程之LinkedBlockingQueue队列怎么使用
    这篇文章主要介绍了Java并发编程之LinkedBlockingQueue队列怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java并发编程之LinkedBlockingQueue队列怎么使用文章都会有...
    99+
    2023-06-30
  • 如何使用Python接口优化并发编程的开发效率?
    Python是一种广泛使用的编程语言,因其易于学习和使用而备受欢迎。Python拥有许多内置模块和库,可用于各种目的,其中包括并发编程。 并发编程是一种编程模型,其中多个线程或进程同时执行任务。并发编程可以提高应用程序的性能和响应速度,但...
    99+
    2023-05-26
  • Java并发编程系列之LockSupport的用法
    目录1、什么是LockSupport?2、两类基本API3、LockSupport本质4、LockSupport例子5、LockSupport源码总结 1、什么是LockSu...
    99+
    2022-11-12
  • 怎么用Java高并发编程之CountDownLatch
    本篇文章为大家展示了怎么用Java高并发编程之CountDownLatch,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是CountDownLatchCountDownLatch是通过一个计数器...
    99+
    2023-06-15
  • Java并发编程之线程间的通信
    目录一、概念简介1、线程通信2、等待通知机制3、基础方法二、等待通知原理1、基本原理2、实现案例三、管道流通信1、管道流简介2、使用案例四、生产消费模式1、业务场景2、代码实现五、源...
    99+
    2022-11-12
  • Java并发编程之对象的共享
    目录1.可见性1.1 失效数据1.2 非原子的64位操作1.3 加锁和可见性1.4 volatile变量2. 发布与泄露3. 线程封闭3.1 Ad-hoc线程封闭3.2 栈封闭3.3...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作