首页 > 编程语言 >java 关于有序获取多线程的返回结果问题,按提交任务的顺序,收集执行结果

java 关于有序获取多线程的返回结果问题,按提交任务的顺序,收集执行结果

时间:2024-02-06 15:33:44浏览次数:35  
标签:java 结果 list2 任务 线程 提交 多线程

问题:以前做的多线程,执行的返回结果都是无序的,所以每次执行完毕后还要对结果集重新进行排序,增加了耗时;

 

今天突然想到一个思路,在给线程池提交任务的时候,可以提前获取任务总数,创建一个用于接收结果集的固定大小list2,然后子线程执行的时候把当前任务序号传进去,处理好数据后根据序号(下标)直接把数据加到list2集合的指定位置里,

注意,在提交任务之前要先用循环把list2.add(null)把这个结果集填充到目标容量大小,防止子线程填充数据时list.set(22, "哈哈哈")时报数组越界,

因为每一个子线程都是把结果填充到list2中的指定位置,所以不存在并发问题;

先记录一下这个想法,以后有相似场景再进行验证一下

标签:java,结果,list2,任务,线程,提交,多线程
From: https://www.cnblogs.com/huangruiwu/p/18009817

相关文章

  • 了解Java
    Java版本发展路线从Java5开始,舍弃小版本命名,使用大版本号的方式命名。Java平台分为JaveSE、JaveEE、JaveME三类JaveSE、JaveEE、JaveMEJaveSE:(JavaPlatform,StandardEdition,又称J2SE),可以理解为Java标准版本包含了Java日常开发使用的基本类,允许开发和部署在桌面、服务器、嵌......
  • JAVA之异常处理
    一、异常的体系结构Throwable:是java中所有异常和错误的父类,其包括两个子类Error(错误)和Exception(异常)。Error:是程序中无法处理的错误,一般是指与虚拟机相关的问题,如系统崩溃、虚拟机错误、动态链接失败等。这类错误无法恢复或捕获,将会导致应用程秀中断。此类异常发生时,必须手......
  • JavaScript的正则表达式
    目录一、概念二、修饰符1.g(global,全局)2.i(ignorecase,不区分大小写)3.m(multi-line,多行)4.s(single-line,单行)5.u(Unicode,Unicode字符)6.y(sticky,粘性)三、元字符1..(匹配非换行符\n的任意一个字符)2.\d(匹配数字)3.\D(匹配除数字以外的所有字符)......
  • Java学习初体验
    1.安装JDK进入官网:https://oracle.com->Products->Java->DownloadJava选择JDK版本,再选择相应操作系统,注意CPU架构为X86还是ARM,安装即可。ps:下载JDK版本要下载TLS版本,LTS(Long-TermSupport,长期支持)是指针对软件的某一版本,提供长时间的技术支持、安全更新和错误......
  • JavaScript移动端的手指触摸touch事件
    目录概念touchstart触摸发生事件touchend触摸结束事件touchmove触摸移动事件touchcancel触摸取消事件自定义事件自定义轻触事件方法touchtap自定义左右划动事件方法touchswiper概念在JavaScript中,移动端基本的手指触摸touch事件有四种,分别为:touchstart:手指触摸屏幕时......
  • JavaScript函数柯里化
    目录概念函数柯里化的实现函数柯里化简写函数柯里化使用案例函数柯里化工厂函数概念函数柯里化就是给一个函数传入一部分参数,此时就会返回一个函数来接收剩余的参数。使用场景:递归使用和处理函数,函数功能尽可能单一。函数柯里化的实现//没有柯里化的实现function......
  • java实现导出mysql数据库表信息
    java实现导出mysql数据库表信息,导出信息包含:数据库用户名,表英文名,表中文名,表业务描述,字段数量等等packagesrc.main.biz.ucenter.utils;importorg.apache.poi.ss.usermodel.Row;importorg.apache.poi.ss.usermodel.Sheet;importorg.apache.poi.ss.usermodel.Workbook;impor......
  • 解密JavaChassis3:易扩展的多种注册中心支持
    本文分享自华为云社区《JavaChassis3技术解密:易扩展的多种注册中心支持》,作者:liubao68。JavaChassis的早期版本依赖于ServiceCenter,提供了很多差异化的竞争力:接口级别转发。通过注册中心管理微服务的每个版本的元数据,特别是契约数据。结合契约数据,能够实现版本级别的路由......
  • 深入浅出Java多线程(九):synchronized与锁
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第九篇内容:synchronized与锁。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在现代软件开发中,多线程技术是提升系统性能和并发能力的关键手段之一。Java作为主流的编程语言,其内置的多线程机制为开发者......
  • Java中的 << , >> , 和 >>>所代表的含义
    Java中的<<,>>,和>>>所代表的含义标题Java中的<<,>>,和>>>所代表的含义1.<<表示左移运算符例如8<<1,表示将8向左移1位,低位补0,结果为16。例如8<<2,表示将8向左移2位,低位补0,结果为32。左移一位相当于乘以二二进制演算:8的二进制:1000向左移动两位结果为100000,换......