java 给任务传递参数

Wesley13
• 阅读 569
之前https://www.cnblogs.com/kexb/p/10228369.html没有参数,这里介绍参数什么传入
package com.hra.riskprice;

import com.hra.riskprice.SysEnum.Factor_Type;
import com.hra.riskprice.pojo.RskFactor;
import com.hra.riskprice.service.impl.RskFactorBulkMapper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.*;
import java.util.concurrent.*;

@SpringBootApplication
public class RiskpriceApplication {

    public static void main(String[] args) throws InterruptedException, ExecutionException{
        new  RiskpriceApplication().exec();
    }


    void exec() throws InterruptedException, ExecutionException {
        //进行异步任务列表
        List<FutureTask<Integer>> futureTasks = new ArrayList<FutureTask<Integer>>();
        //线程池 初始化十个线程 和JDBC连接池是一个意思 实现重用
        ExecutorService executorService = Executors.newFixedThreadPool(10);
        long start = System.currentTimeMillis();
        int jj=0;
        //类似与run方法的实现 Callable是一个接口,在call中手写逻辑代码
        for(int i=0;i<10;i++){
            cccc c1=new cccc();
            c1.setIndex(i);
            FutureTask<Integer> futureTask = new FutureTask<Integer>(c1);
            futureTasks.add(futureTask);
            //提交异步任务到线程池,让线程池管理任务 特爽把。
            //由于是异步并行任务,所以这里并不会阻塞
            executorService.submit(futureTask);
        }

        int count = 0;
        for (FutureTask<Integer> futureTask : futureTasks) {
            //futureTask.get() 得到我们想要的结果
            //该方法有一个重载get(long timeout, TimeUnit unit) 第一个参数为最大等待时间,第二个为时间的单位
            count+= futureTask.get();
        }
        long end = System.currentTimeMillis();
        System.out.println("线程池的任务全部完成:结果为:"+count+",main线程关闭,进行线程的清理");
        System.out.println("使用时间:"+(end-start)+"ms");
        //清理线程池
        executorService.shutdown();

    }
   private int arg;
    class cccc implements   Callable<Integer>{
        private int index;
        public int getIndex(){
            return index;
        }
        public void setIndex(int i){
            this.index=i;
        }
        @Override
        public Integer call() throws Exception {
            System.out.println("任务执行 is "+index+"个");
            Integer res = new Random().nextInt(100);
            Thread.sleep(1000);
            System.out.println("任务执行:获取到结果 :"+res);
            return  res;
        }

    }
}
点赞
收藏
评论区
推荐文章
待兔 待兔
2个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
2年前
java接收http请求body中的json数据
一般情况下,web应用中,浏览器发送http请求,传参数的时候都是作为param传递的,java服务端通过request.getParameter(name)可以获取参数内容;但是会有一些场景,把参数放在了http的payload中(contentType:”application/json”),这时,使用getParameter就获取不到了,比如
Wesley13 Wesley13
2年前
java传值与引用的关系
       首先,我们必须要搞清楚的一件事是,不管java的参数类型是什么,一律传递的是参数的副本。也就是说每次传递参数的时候都会讲参数拷贝一份传递。1.基本数据类型:       对于基本的数据类型来说,java传递的是指的副本;也就是将数据拷贝一份以后传递。因此当函数返回的时候,不管在调用的函数中做了什么操作,基本数据类型的值都不会改变。
Wesley13 Wesley13
2年前
java的可变参数
Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用,今天小编带大家一起去深入的了解java的可变参数使用方式!01、什么是可变参数在Java5中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数。使用...表示可变长参数,例如1.p
Easter79 Easter79
2年前
Typescript 常见的几种函数重载方法详解与应用示例
所谓的重载,其实就是使用相同的函数名,传入不同数量的参数或不同类型的参数,以此创建出多个方法或产生不同结果。1\.最常见的,也就是根据定义傻瓜式地判断参数类型与数量functionshowPerson(name,...others){console.log(name,others)}
Stella981 Stella981
2年前
Mybatis介绍之参数传递
转载自:https://blog.csdn.net/u010643307/article/details/70148702(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fu010643307%2Farticle%2Fdetails%2F70148702
Wesley13 Wesley13
2年前
12、ES6形参默认值
当定义函数的时候,可以给参数设置默认值。调用的时候不传递参数值,就使用默认值。例子1:普通函数,不传递参数值。默认全是undefined。functionadd(a,b,c){console.log(a,b,c);}add();//不传递参数是,默认参数值全是undef
Wesley13 Wesley13
2年前
Java中的参数验证(非Spring版)
1\.Java中的参数验证(非Spring版)1.1.前言为什么我总遇到这种非正常问题,我们知道很多时候我们的参数校验都是放在controller层的传入参数进行校验,我们常用的校验方式就是引入下列的jar包,在参数中添加@Validated,并对Bean对象的参数做不
Stella981 Stella981
2年前
Angular路由参数传递
一、路由时传递参数的方式1、在查询参数中传递数据,如//前台页面<arouterLink"/product"queryParams"{id:1}"商品详情</a//后台页面获取参数exportclassProductComponentimplementsOnInit{
京东云开发者 京东云开发者
11个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了