首页 > 其他分享 >多任务派发线程处理示例supplyAsync

多任务派发线程处理示例supplyAsync

时间:2023-08-02 14:36:27浏览次数:40  
标签:java 示例 List util add 线程 import new supplyAsync

package com.cytc.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

public class T7 {
    public static void main(String[] args) {
        List<List<String>> groupedIdList = new ArrayList<>();
        List<String> temp1 = new ArrayList<>();
        temp1.add("123");
        List<String> temp2 = new ArrayList<>();
        temp2.add("456");
        groupedIdList.add(temp1);
        groupedIdList.add(temp2);

        List<CompletableFuture<List<String>>> futureList = groupedIdList.stream()
                .map(taskData -> CompletableFuture.supplyAsync(() -> queryTyGroupList(taskData),
                        new ThreadPoolExecutor(100, 500, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue(500))))
                .collect(Collectors.toList());
        // 确保所有的任务完成
        List<List<String>> resultBeanList = futureList.stream().map(CompletableFuture::join).collect(Collectors.toList());
        System.out.println("******************* all tasks handle done**********************");
        resultBeanList.forEach(c->{
            System.out.println(c);
        });
    }

    private static List<String> queryTyGroupList(List<String> codeList) {
        codeList.forEach(code -> {
            code = code + " handle data";
            System.out.println(code);
            try {
                Thread.sleep(new Random().nextInt(1000));
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        codeList.add(" new data.. ");
        return codeList;
    }
}

  

标签:java,示例,List,util,add,线程,import,new,supplyAsync
From: https://www.cnblogs.com/zeenzhou/p/17600576.html

相关文章

  • Redis的单线程设计之谜:高性能与简洁并存
    Redis作为一款高性能的内存数据库,以其出色的读写性能和多种数据结构支持而闻名。然而,与其他传统数据库不同,Redis采用了独特的单线程设计。在本文中,我们将揭开Redis单线程设计的奥秘,解释其为何能在单线程下实现高性能,并探讨适用场景与优势。1.Redis单线程模型Redis的单线程模型意味......
  • 多线程任务新jdk8写法
    ListuniqueList=groupIds.stream().distinct().collect(Collectors.toList());//分组后的listList<List<String>>groupedIdList=Lists.partition(uniqueList,10);List<CompletableFuture<ResultBody<List<TyGroupVo>>>>futureLis......
  • JS是门单线程语言
    多线程语言的好处是,在同一时间让cpu处理多个事情。充分的利用cpu多核多线程的资源优势。程序也会执行的更快!支持多线程的语言有特别多,比如java、python等等,但是也有单线程语言如jsclassRunnableDemoimplementsRunnable{privateThreadt;privatefinalStr......
  • 多线程之OMP
    记录在学习games101的时候碰到的多线程知识以下所有结果均在Ubuntu22.04.2LTS操作系统下使用g++11.3.0运行所有的问题来自下面这段代码,这是games101的第七次作业的一部分,需要使用多线程加速PathTracing intuse_critical=0;floatpocess=0;floatsca......
  • 进程与线程
    进程进程就是一个程序的执行实例,也就是正在执行的程序,是操作系统资源分配的基本单位。进程的概念主要有两点:1.进程是一个实体。每个进程都有独立的代码和数据空间(程序上下文),即自己的地址空间。2.进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程......
  • 请求示例curl获取淘宝1688京东等电商平台商品详情数据API接口,批量采集
    获得页面使用命令:curlhttp://curl.haxx.se这是最简单的使用方法。用这个命令获得了http://curl.haxx.se指向的页面,同样,如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。如果下载的是HTML文档,那么缺省的将只显示文件头部,即HTML文档的header。要全部显示,请加参数......
  • 电商API接口系列商品详情关键词搜索评论等数据,亲测有效,请求示例说明
    在电商运营活动中,价格是贯穿始终的关键因素,而品牌方有效利用价格数据也能够推动企业更好的发展。当品牌方能够精准获取商品的到手价时,有利于做好商品的定价复盘工作、后续的价格分析工作,也能够为后面的调价作参考;当品牌方能够全面掌握到商品的历史价时,就能够更好的把握商品不同时......
  • 请求示例 url 默认请求参数API接口,淘宝天猫1688拼多多商品详情接口
     item_get-获得淘宝商品详情onebound.taobao.item_getAPI接口工具请求参数请求参数:num_iid=520813250866&is_promotion=1参数说明:num_iid:淘宝商品IDis_promotion:是否获取取促销价响应参数Version:Date:2022-04-04名称类型必须示例值描述itemitem[]1宝贝详情数据num_iidBigint1......
  • Python使用 - 多线程
    常见术语及用法 基本使用#定义线程类classMyThread(threading.Thread):def__init__(self):super(MyThread,self).__init__()#或threading.Thread.__init__(self)defrun(self)->None:tid=threading.currentThread().ident......
  • 大数据中心,电商商品详情API接口参考示例说明
    item_get-获得淘宝商品详情公共参数请求地址:o0b.cn/anzexi名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认yes,将调用缓存的......