当前位置: 首页 > news >正文

多线程处理文件集合,先拆分,在执行

try {File file = new File(path);File[] files = file.listFiles();log.info("当前共有文件 "+files.length+"个");List<File> filesList = new ArrayList<>(Arrays.asList(files));List<List<File>> dividedLists = SplitListUtils.splitList(filesList, 10);int numThreads = Math.min(10, dividedLists.size());  // 获取实际的任务数量log.info("线程数:"+ numThreads);// 创建线程池并执行任务ExecutorService executor = Executors.newFixedThreadPool(numThreads);for (List<File> subFiles : dividedLists) {executor.execute(() -> processFiles(subFiles));}executor.shutdown();boolean finished = false;try {finished = executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);} catch (InterruptedException e) {// 处理中断异常e.printStackTrace();}// 在执行完所有任务后继续后面的操作处理 collect_task 结束if (finished) {// 所有任务已完成,可以执行后续操作System.out.println("ok.....");} else {// 等待超时或者被中断,可以根据需要进行处理System.out.println("执行中....");}} catch (Exception e) {e.printStackTrace();}
 public static  List<List<File>> splitList(List<File> list, int numLists) {List<List<File>> dividedLists = new ArrayList<>();int size = list.size();int average = size / numLists;int remainder = size % numLists;int index = 0;for (int i = 0; i < numLists; i++) {int sublistSize = average + (i < remainder ? 1 : 0);List<File> sublist = new ArrayList<>(list.subList(index, index + sublistSize));if(sublist.size() > 0){dividedLists.add(sublist);}index += sublistSize;}return dividedLists;}

上面代码的拆分, 最多集合是10个,如果大集合的总数小于10,那就是大集合的数量。要是大集合的数量大于10个,那就均分到10个小集合中。

相关文章:

多线程处理文件集合,先拆分,在执行

try {File file new File(path);File[] files file.listFiles();log.info("当前共有文件 "files.length"个");List<File> filesList new ArrayList<>(Arrays.asList(files));List<List<File>> dividedLists SplitListUtils.sp…...

将excel表中的英文自动翻译成中文

某乎上垃圾内容太多&#xff0c;要么是复制粘贴的youdao翻译&#xff0c;要么是某网络函数库的软广。这里提供office的原生方法&#xff0c;需要用到word&#xff08;不适合数据量太大的情况&#xff09; 方法 复制需要翻译的列到word选择审阅 -> 翻译 -> 翻译文档 -&g…...

Junit 集成测试

前言 现在作者说明一下&#xff0c;作者需要开发一个简单的VueSpringboot前后端分离实验&#xff0c;想要尽量将测试的流程应用到这样的系统中。单元测试请见Junit单元测试_Joy T的博客-CSDN博客&#xff0c;而单元测试加上mock呢&#xff0c;最多也只能测试一下Service层的业…...

Orleans的成员管理和故障检测故障检测

Orleans的成员管理和故障检测故障检测 简介 Orleans框架是一个基于.NET平台的开源分布式系统框架&#xff0c;用于开发可扩展&#xff0c;高可用&#xff0c;高性能的云服务应用程序。它采用了Actor模型&#xff0c;将分布式系统中的各个节点抽象成为Actor&#xff0c;使得开…...

分类选择,最多五级

效果图&#xff0c;这种竖向的分类选择&#xff0c;每一列可以用不同的背景颜色 组件代码 <template><view class"toolTypeBox" :style"max-height:${maxHeight}"><block v-for"(item,index) in datalist"><block v-if&…...

ASP.NET framework升级core .NET 6.0

C# ASP.NET framework 升级core .NET 6.0 .NET 7.0 .NET 8.0 或者以上 .net framework、.net standard、.net core .net 5/6/7/8 区别_.net 6.0和.net framework的区别-CSDN博客 using System.Web.Http; using HttpPostAttribute Microsoft.AspNetCore.Mvc.HttpPostA…...

BootStrap-前端框架

资料:https://v3.bootcss.com/components/ BootStrap的概念&#xff08;Web框架&#xff09; Bootstrap&#xff0c;来自 Twitter&#xff0c;是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的&#xff0c;它简洁灵活&#xff0c;使得 Web 开发更加快捷。…...

解读 | 自动驾驶系统中的多视点三维目标检测网络

原创 | 文 BFT机器人 01 背景 多视角三维物体检测网络&#xff0c;用于实现自动驾驶场景高精度三维目标检测&#xff0c;该网络使用激光雷达点云和RGB图像进行感知融合&#xff0c;以预测定向的三维边界框&#xff0c;相比于现有技术&#xff0c;取得了显著的精度提升。同时现…...

C++ 用户学习 Python 的最佳方法

对于很多是一名计算机科学专业的学生而言&#xff0c;很多入门是学习的C和 C&#xff0c;可能熟悉非常基本的 python 语法&#xff0c;以及 C 中相当高级的数据结构。现在想深入学习Python的话&#xff0c;光看很多在线教程可能没法有较大的提升&#xff0c;这里有一些针对C用户…...

使用docker搭建drogon windows10,linux,mac下开发环境

2023年10月13日14:52:26 本机环境 Windows 10 专业版 22H2 操作内核19045.2965 如果直接在windows&#xff0c;linux&#xff0c;mac上直接搭建环境确实有一点难度&#xff0c;之前drogon官方并未提供官方镜像&#xff0c;现在有了docker镜像确实方便了&#xff0c;其实我是最…...

【RKNN】YOLO V5中pytorch2onnx,pytorch和onnx模型输出不一致,精度降低

在yolo v5训练的模型&#xff0c;转onnx&#xff0c;再转rknn后&#xff0c;测试发现&#xff1a; rknn模型&#xff0c;量化与非量化&#xff0c;相较于pytorch模型&#xff0c;测试精度都有降低onnx模型&#xff0c;相较于pytorch模型&#xff0c;测试精度也有降低&#xff…...

六分科技CEO李阳:精准定位助力汽车智能化普及

10月10日&#xff0c;2023四维图新用户大会在上海成功举办。大会现场&#xff0c;六分科技展示了基于PPP-RTK技术的“星璨”产品和软硬件一体化解决方案。同时在智能驾驶主题论坛上&#xff0c;六分科技CEO李阳受邀发表了以《精准定位助力汽车智能化普及》为主题的演讲。 高精度…...

信号完整性分析基础知识之有损传输线、上升时间衰减和材料特性(六):衰减和dB

线路中的损耗对信号的主要影响是当信号沿线路长度传播时幅度减小。如果将幅度为 V 的正弦波电压信号引入传输线&#xff0c;则其幅度将随着传输线向下移动而下降。图 9-16 显示了如果我们可以冻结时间并观察直线上存在的正弦波&#xff0c;则正弦波在不同位置可能会是什么样子。…...

吃鸡达人必备:分享顶级干货+作图工具推荐+账号安全查询!

吃鸡达人们&#xff0c;你们好&#xff01;今天我来给大家介绍一些炙手可热的吃鸡话题&#xff0c;以及一些让你实力飙升的独家干货&#xff01; 首先&#xff0c;让我们说一下如何提高自己的游戏战斗力。作为一名专业吃鸡行家&#xff0c;我将与你们分享一些顶级游戏作战干货&…...

帆软报表解决单元格不显示问题

前言 使用帆软报表设计器制作普通报表时、设计器界面经常有一根垂直的 “虚线”。一旦单元格超过这条 “虚线” &#xff0c;那么真正打开报表就看不到这些列了。以下提供了简单的修正方法、欢迎大家讨论交流。 操作环境 设计器是帆软报表 9.0&#xff0c;操作系统是 Window…...

LeetCode讲解篇之138. 随机链表的复制

LeetCode讲解篇之138. 随机链表的复制 文章目录 LeetCode讲解篇之138. 随机链表的复制题目描述题解思路题解代码 题目描述 题解思路 先遍历一遍链表&#xff0c;用哈希表保存原始节点和克隆节点的映射关系&#xff0c;先只克隆节点的Val&#xff0c;然后再次遍历链表&#xff…...

主定理(简化版)

主定理&#xff08;Master Theorem&#xff09;是用于分析递归算法时间复杂度的一个重要工具。它适用于形式化定义的一类递归关系&#xff0c;通常采用分治策略解决问题的情况。 假设我们有一个递归算法&#xff0c;它将问题分解成 a a a 个子问题&#xff0c;每个子问题的规模…...

HTTP1.0和HTTP2.0的区别

相同点&#xff1a;所有的HTTP请求都要基于TCP连接。 HTTP1.0&#xff1a;每次发送请求时建立一个TCP连接&#xff0c;得到响应后&#xff0c;释放TCP连接。 HTP1.1&#xff1a;**相比于1.0&#xff0c;引入了Keep live&#xff0c;客户端得到响应后&#xff0c;不会立刻释放T…...

ARM资源记录《AI嵌入式系统:算法优化与实现》第八章(暂时用不到)

1.CMSIS的代码 书里给的5&#xff0c;https://github.com/ARM-software/CMSIS_5 现在有6了&#xff0c;https://github.com/ARM-software/CMSIS_6 这是官网的书&#xff0c;介绍cmsis函数的https://arm-software.github.io/CMSIS_5/Core/html/index.html 2.CMSIS介绍 Cort…...

微信小程序2

一&#xff0c;视图层 1.什么视图层 框架的视图层由 WXML 与 WXSS 编写&#xff0c;由组件来进行展示。 将逻辑层的数据反映成视图&#xff0c;同时将视图层的事件发送给逻辑层。 WXML(WeiXin Markup language) 用于描述页面的结构。 WXS(WeiXin Script) 是小程序的一套脚本语…...

Youtu-VL-4B-Instruct问题解决:服务启动失败?常见错误排查与修复

Youtu-VL-4B-Instruct问题解决&#xff1a;服务启动失败&#xff1f;常见错误排查与修复 1. 服务启动失败的常见表现 当你尝试启动Youtu-VL-4B-Instruct服务时&#xff0c;可能会遇到以下几种典型问题&#xff1a; 1.1 端口冲突错误 最常见的错误是端口已被占用&#xff0c…...

Ostrakon-VL-8B多模态能力解析:图文联合理解在零售场景的体现

Ostrakon-VL-8B多模态能力解析&#xff1a;图文联合理解在零售场景的体现 1. 零售场景中的多模态挑战 现代零售行业面临着复杂的视觉理解需求。传统计算机视觉系统通常只能完成单一任务&#xff0c;比如商品识别或文字提取&#xff0c;而无法同时理解图像中的多种元素及其相互…...

Scikit-learn的随机SVD真的能“超快”降维吗?先看清代价

先说结论随机SVD确实能大幅提升PCA速度&#xff0c;尤其在样本量大的场景&#xff0c;但代价是可控的精度损失和随机性引入这种优化更适合离线或准实时处理&#xff0c;在严格实时边缘系统中仍可能成为瓶颈&#xff0c;需要结合硬件加速选择随机SVD前&#xff0c;必须明确业务对…...

OpenClaw安全实践:用SecGPT-14B自动生成每周漏洞简报

OpenClaw安全实践&#xff1a;用SecGPT-14B自动生成每周漏洞简报 1. 为什么需要自动化漏洞简报 作为安全工程师&#xff0c;每周手动整理CVE漏洞报告已经成为我的例行工作。这个过程通常需要&#xff1a; 从NVD、CVE Details等平台爬取最新漏洞数据人工筛选高风险条目评估影…...

OpenClaw截图分析进阶:千问3.5-9B识别UI元素与操作建议

OpenClaw截图分析进阶&#xff1a;千问3.5-9B识别UI元素与操作建议 1. 为什么需要截图分析能力&#xff1f; 上周我在测试一个内部工具时遇到了一个典型问题——某个按钮在特定分辨率下会消失不见。手动排查需要反复调整窗口尺寸并肉眼检查&#xff0c;效率极低。这时我想到了…...

基于vue的高校学生党员发展管理系统[vue]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文旨在设计并实现一个基于Vue框架的高校教师教学质量评价系统。该系统充分利用Vue的组件化、响应式等特性&#xff0c;结合后端技术构建一个高效、易用、交互性强的评价平台。系统涵盖系统用户管理、学生评价管理、教师自评管理以及统计分析管理等多个功能模…...

五层电梯MCGS7.7嵌入版与三菱PLC的联动编程实践

5五层电梯MCGS7.7嵌入版和三菱PLC联机程序调试电梯控制程序最头疼的莫过于通讯不稳定。上个月刚搞完一个五层电梯项目&#xff0c;MCGS7.7触摸屏和三菱FX3U的联机调试过程简直像坐过山车——楼层显示乱跳、按钮状态丢失这些幺蛾子接踵而来。今天咱就唠唠这个项目的实战经验。硬…...

第 2 章 控制流 知识点精讲

2.1 布尔值核心知识点布尔值是表示真假的两种状态&#xff0c;是控制流的基础。True&#xff1a;表示真、成立、肯定。False&#xff1a;表示假、不成立、否定。关键特性布尔值是 Python 的基本数据类型之一&#xff0c;类型为 bool。它们是关键字&#xff0c;必须大写。在数值…...

AI率降完又反弹原因在这里解决方案也在

论文AI率降到15%&#xff0c;隔了一周再测&#xff0c;又变成了24%。 这个情况不是你的错&#xff0c;也不是工具骗你&#xff0c;而是有几个实际原因导致的。这篇文章解释清楚原因&#xff0c;然后给解决方案。 AI率反弹的3个真实原因 原因一&#xff1a;检测系统更新了 这…...

飞浆PaddleOCR实战:5分钟实现图片转文字+表格识别(Python代码可直接套用)

飞桨PaddleOCR极速入门&#xff1a;零基础实现高精度图片转文字与表格解析 在数字化办公和智能信息处理的大背景下&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术正成为提升工作效率的利器。想象一下&#xff0c;当面对堆积如山的纸质文档、会议白板照片或是复杂的财…...