首页 > 其他分享 >线程池使用示例

线程池使用示例

时间:2023-11-26 12:23:04浏览次数:27  
标签:示例 executor printStackTrace 任务 线程 ex 使用

概述

在多线程执行任务时,可以使用线程池执行任务。
相关代码如下:

public static void main(String[] args) {
        ThreadPoolExecutor executor=null;
        try{
            executor = new ThreadPoolExecutor(2, 3, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(8));
            // 提交任务到线程池
            for (int i = 0; i < 11; i++) {
                executor.execute(() -> {
                    try {
                        Thread.sleep(1000); // 模拟任务执行时间
                        System.out.println("任务 " + Thread.currentThread().getId() + " 执行完成...");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                });
            }
        }
        catch (Exception ex){
            ex.printStackTrace();
        }
        finally {
            executor.shutdown();
        }
    }

这里可以看到线程池的
1.核心线程数
2.最大线程数
3.队列大小

我们可以测试一次最大可以提交的线程数为
最大线程数 + 队列大小。
如果提交的任务数大于这个数量,那么会抛出拒绝异常。

标签:示例,executor,printStackTrace,任务,线程,ex,使用
From: https://www.cnblogs.com/yg_zhang/p/17856721.html

相关文章

  • Meterpreter框架使用实验
     一.实验目的与配置了解漏洞复现的基本流程和方法熟悉永恒之蓝的漏洞原理及其利用熟悉Metasploit框架的使用及其相关的命令 二.实验环境Win7虚拟机一台,kali虚拟机一台 三.实验工具VMWare、NMap、Metasploit 四.实验步骤搭建测试环境,将kali作为攻击主机、win7_x......
  • 【Python】使用vscode编码提示找不到模块
    问题描述已经使用pip安装了模块,但是使用vscode没有代码提示。解决办法这种情况一般是因为pc安装了多个python版本,安装模块的pip不是vscode指定的编译环境。点击右下角,选择环境变量中配置的python版本。解决问题:......
  • Python 潮流周刊#28:两种线程池、四种优化程序的方法
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。本周刊开源,欢迎投稿。另有电报频道作为副刊,补充发布更加丰富的资讯。......
  • 使用yield返回集合数据
    staticvoidMain(string[]args){foreach(vararginGetStrings()){Console.WriteLine(arg);}Console.ReadLine();}staticIEnumerable<string>GetStrings(){yieldreturn"1";Console.WriteLine("1返回去了......
  • Java之线程实例(重要)
    接上一章没讲完的线程知识点中关于“死锁”的概念。当线程进入不可运行状态时,其他线程无法访问那个加锁对象,所以一个线程会一直处于等待另一个线程的状态,而另一个线程又会处于等待下一个线程的状态,此时,所有的线程都陷入无休止的等待状态中,无法继续运行,这种情况就被称为线程的“死锁......
  • 传递数据到页面时,通常使用 DTO
    在传递数据到页面时,通常使用DTO(数据传输对象)或VO(视图对象)的概念。选择使用哪个取决于你的具体需求和设计原则。DTO(数据传输对象):特点:DTO是用于在不同层之间传输数据的对象,它的目的是为了在各个层次之间传递数据而不暴露内部实现细节。使用场景:在前后端分离的架构中,DTO通常用于......
  • C# 使用Task执行异步操作
    原文链接:C#使用Task执行异步操作-Ryan_zheng-博客园(cnblogs.com)为什么要使用Task线程是创建并发的底层工具,因此具有一定的局限性。没有简单的方法可以从联合(Join)线程得到“返回值”。因此必须创建一些共享域。当抛出一个异常时,捕捉和处理异常也是麻烦的。线程完成之......
  • 使用JavaWeb实现文件的上传和下载
    文件上传[文件上传的注意事项]1.为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如放于WEB-INF目录下。2.为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名3.要限制上传文件的最大值。4.可以限制上传文件的类型,在收到上传文件名时,判断后缀名是否合......
  • 使用skforecast进行时间序列预测
    时间序列预测是数据科学和商业分析中基于历史数据预测未来价值的一项重要技术。它有着广泛的应用,从需求规划、销售预测到计量经济分析。由于Python的多功能性和专业库的可用性,它已经成为一种流行的预测编程语言。其中一个为时间序列预测任务量身定制的库是skforecast。在本文中,将......
  • .net core下优秀的日志框架使用解析,附源代码
    在.NETCore中,日志是一个非常重要的组件,它可以帮助我们记录应用程序的运行情况,以便在出现问题时进行排查。在本文中,我们将介绍五个优秀的.NETCore日志框架,它们分别是Serilog、NLog、Log4Net、Microsoft.Extensions.Logging和Loupe。我们将为每个框架提供使用方法及步骤,并......