java 给任务传递参数
之前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();
long start = System.currentTimeMillis();
int jj=;
//类似与run方法的实现 Callable是一个接口,在call中手写逻辑代码
for(int i=;i<;i++){
cccc c1=new cccc();
c1.setIndex(i);
FutureTask<Integer> futureTask = new FutureTask<Integer>(c1);
futureTasks.add(futureTask);
//提交异步任务到线程池,让线程池管理任务 特爽把。
//由于是异步并行任务,所以这里并不会阻塞
executorService.submit(futureTask);
} int count = ;
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();
Thread.sleep();
System.out.println("任务执行:获取到结果 :"+res);
return res;
} }
}
java 给任务传递参数的更多相关文章
- Java调用函数传递参数到底是值传递还是引用传递
今天翻看微信上有关Java技术的公众号时,看到了一篇关于Java中值传递的问题,文章讨论了在Java中调用函数进行传参的时候到底是值传递还是引用传递这个面试时会问到的问题.之前也接触过类似的问题,但只 ...
- Java 给Thread传递参数
一开始我想把run()函数写成有参函数来传值,后来发现行不通.经过查找,最终用如下方法传递了参数: 也就是用另外一个有参函数setTar()传递参数. 调用的时候用这4行code传递参数: 上面是用i ...
- Java命令行传递参数
目录 命令行传参 代码运行 视频 命令行传参 有时候你希望运行一个程序的时候再传递给它消息. 这要靠传递命令行参数给main()函数实现 package com.broky.base; public ...
- Android,使用Intent或Bundle传递参数,跳转页面。
(1)使用Intent跳转页面: 第一个activity:MainActivity.java中: Intent myIntent = new Intent(); myIntent.putExtra(& ...
- JavaWeb_(Struts2框架)参数传递之接收参数与传递参数
此系列博文基于同一个项目已上传至github 传送门 JavaWeb_(Struts2框架)Struts创建Action的三种方式 传送门 JavaWeb_(Struts2框架)struts.xml核 ...
- [转] C++的引用传递、指针传递参数在java中的相应处理方法
原文出处:[http://blog.csdn.net/conowen/article/details/7420533] 首先要明白一点,java是没有指针这个概念的. 但是要实现C++的引用传递.指针 ...
- java方法强制传递引用参数(做为返回值),改变被传递参数值。
Java传递参数分为2种: 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝: 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变:如果不想这样传 ...
- 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值
接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码 ...
- java调用python程序以及向python程序传递参数
在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python ...
随机推荐
- 使用setup.py安装python包和卸载python包的方法
使用setup.py安装python包和卸载python包的方法 记录安装后文件的路径 python setup.py install --record files.txt删除这些文件 cat fil ...
- ClientDataSet
TField对象的SetText和GetText事件处理函数 使用TField对象的SetText和GetText事件处理函数可方便的解决字段的代码与代码所对应值的显示问题 TSimpleDatase ...
- 装完Centos7提示Initial setup of CentOS Linux 7 (core)
在用U盘装完CentOS后,重新开机启动后显示: Initial setup of CentOS Linux 7 (core) 1) [x] Creat user 2) [!] License inf ...
- oData 排序字段生成
跟踪SQL 发现生成的SQL中所有的字段都进行了排序,查看OData原代码,发现如果实体有Key,就按照Key asc 加上指定字段进行排序 属性 EnsureStableOrdering可以控制是否 ...
- 【mysql】批量更新数据
概述 批量更新mysql数据表数据,上网搜索基本都会说4~5方法,本人使用的更新方式为: INSERT ... ON DUPLICATE KEY UPDATE Syntax 可参见官方网站:inser ...
- Python的hasattr(),getattr(),setattr()
今天读到源码时遇到了setattr()和getattr()两方法,给忘了,重新回顾一下吧! 1. hasattr(object, name) 判断object里是否有name属性,有就返回True,没 ...
- java使用jdbc连接oracle(其他数据库类似)
最基本的Oracle数据库连接代码: 1.右键项目->构建路径->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择“D:\Oracle\app\oracle\product ...
- centos7 安装gitlab任意版本
主要还是根据官网:https://www.gitlab.cc/installation/#centos-7 1.安装依赖: sudo yum install curl policycoreutils ...
- laravel表单操作
$request->all()//获取所有参数if($request->isMethod('GET')){判断是否是GET请求}$res = $request->is('studen ...
- Android APK反编译(一)
apk是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP.反编译apk则是将该安卓工程的源码.资源文件等内容破解出来进行分析. 一.APK反编译基本原理 1.APK分析 apk文 ...