首页 > 编程语言 >java线程池编程示例

java线程池编程示例

时间:2024-09-17 18:23:12浏览次数:3  
标签:java 示例 System 任务 线程 executorService out

程序功能

这段代码展示了如何使用 Java 线程池 来并发执行多个任务。通过创建一个固定大小为 3 的线程池,程序提交了 5 个任务,并让线程池中的线程并发处理这些任务。每个任务模拟了一个耗时操作,最后程序等待所有任务完成后关闭线程池。
在这里插入图片描述

代码

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class ThreadPoolExample {
    public static void main(String[] args) {
        // 创建一个固定大小的线程池,线程池大小为 3
        ExecutorService executorService = Executors.newFixedThreadPool(3);

        // 提交5个任务到线程池中
        for (int i = 1; i <= 5; i++) {
            int taskId = i; // 任务ID
            executorService.submit(() -> {
                System.out.println("任务 " + taskId + " 开始执行,线程:" + Thread.currentThread().getName());
                try {
                    // 模拟任务执行时间
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("任务 " + taskId + " 执行完成,线程:" + Thread.currentThread().getName());
            });
        }

        // 关闭线程池,不再接受新任务
        executorService.shutdown();
        try {
            // 等待所有任务执行完毕
            if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {
                executorService.shutdownNow(); // 超时后强制关闭
            }
        } catch (InterruptedException e) {
            executorService.shutdownNow();
        }

        System.out.println("所有任务已完成");
    }
}

标签:java,示例,System,任务,线程,executorService,out
From: https://blog.csdn.net/C7211BA/article/details/142317109

相关文章

  • 如何打造动漫天堂?宇宙动漫网站设计与实现,Java SpringBoot Vue技术揭秘
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、微信小程序、大数据实战项目集⚡⚡文末......
  • 3.Java高级编程实用类介绍(一)
    三、Java高级编程实用类介绍(一)文章目录三、Java高级编程实用类介绍(一)一、枚举类型二、包装类三、Math一、枚举类型使用enum进行定义publicenum枚举名字{值1,值2....}二、包装类每个基本类型在java.lang包中都有一个相应的包装类 /* *new包......
  • Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
    0前言在页面中,要实现数据更新的视图实时显示,纯JavaScrip需要手动编写代码来处理数据和视图之间的更新。而Vue提供了数据绑定的能力,使得数据和视图保持同步。我们通过一个实例来体验两者的差别。我们设计一个页面,在页面里提供一个文本框,用户可以在文本框输入内容,然后我们在文本框下......
  • 4.Java高级编程实用类介绍(二)
    四、Java高级编程实用类介绍(二)文章目录四、Java高级编程实用类介绍(二)一、Random类二、字符串常用方法一、Random类//获得随机数Randomrand=newRand();System.out.println(rand.nextInt(100));//获得20-35的随机数Sytem.out.println(rand.nextInt......
  • Java基础:Api 文档注释,字符串种类,String字符串创建,特点及常用方法
    #1API文档注释*有三种注释 1.`单行注释 //` 2.`多行注释/*  */` 3.`文档注释/** */`*文档注释一般建议写在类,属性和方法上。jdk提供了javadoc.exe工具 对程序的所有类及属性和方法生成一个说明文档 :API文档*API:ApplicationProgramInte......
  • Java 性能调优:优化 GC 线程设置
    垃圾回收器使用一组称为GC线程的线程来执行回收工作。有时JVM可能会分配过多或过少的GC线程。本文将讨论JVM为什么会出现这种情况、其影响以及可能的解决方案。1咋查找应用程序的GC线程数量进行线程转储分析来确定应用程序的GC线程数量:从生产服务器捕获threaddu......
  • 计算机毕业设计推荐-基于Java的小区物业管理系统
    精彩专栏推荐订阅:在下方主页......
  • java计算机毕业设计云计算的城乡医疗卫生服务系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,云计算作为新一代信息技术的核心,正深刻改变着各行各业的服务模式与效率。在医疗卫生领域,面对城乡医疗资源分布不均、信息不对......
  • java计算机毕业设计交通事故档案管理平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和机动车保有量的持续增长,交通事故已成为影响社会公共安全与经济发展的重要因素之一。传统的手工档案管理方式在面对海量、复杂......
  • java计算机毕业设计美国职业篮球联赛信息平台(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:在全球化与数字化并进的今天,体育产业尤其是职业篮球运动,已成为连接全球亿万球迷情感的桥梁,其影响力远超体育竞技本身。美国职业篮球联赛(NBA),作为全球......