文档章节

Callable 执行器

噼里啪啦嘣
 噼里啪啦嘣
发布于 2016/05/08 20:31
字数 202
阅读 5
收藏 0
import java.util.concurrent.*;

/**
 * Created by zyBourn on 15/12/25.
 */
public class Entity {
    /**
     * 执行器
     * 用于启动并控制线程的执行
     * 核心接口为Executor,包含一个execute(Runnable)用于指定被执行的线程
     * ExecutorService接口用于控制线程执行和管理线程
     * 预定义了如下执行器:
     * ThreadPoolExecutor/ScheduledThreadPoolExecutor/ForkJoinPool
     *
     * Callable 与 Future
     *
     * Callable<V>:标识具有返回值的线程
     * V:标识返回值类型
     * call():执行任务
     * Future<V>:表示Callable的返回值
     * V:返回值类型
     * get():获取返回值
     */

    public static void main(String[] args) throws Exception{
        ExecutorService ex= Executors.newFixedThreadPool(2);

        Future<Integer> r1=ex.submit(new Mc(1, 100));
        Future<Integer> r2=ex.submit(new Mc(100,10000));
        System.out.println(r1.get()+":"+r2.get());
        ex.shutdown();
    }
}

class Mc implements Callable<Integer> {
    private  int begin,end;
    public Mc(int begin,int end){
        this.begin=begin;
        this.end=end;
    }
    @Override
    public Integer call() throws Exception {
        int sum=0;
        for (int i = begin; i < end; i++) {
            sum +=i;
        }
        return sum;
    }
}


© 著作权归作者所有

共有 人打赏支持
噼里啪啦嘣

噼里啪啦嘣

粉丝 1
博文 30
码字总数 8391
作品 0
杭州
后端工程师
私信 提问
JAVA多线程实现的三种方式和带返回值实现

1、JAVA多线程实现的四种方式 继承Thread类 实现Runnable接口 实现Callable接口通过FutureTask包装器来创建Thread线程 使用ExecutorService、Callable、Future实现有返回结果的多线程 2、继承...

职业搬砖20年
2018/06/14
0
0
Java多线程、并发杂记

多线程涉及的类可以分为以下几类: 可执行对象:最基本的多线程 执行器:简化多线程编程 工具类 容器 并发控制 一、可执行对象: 1、Runnable: 执行单位:Thread 创建线程的两种方式(来自于...

rathan0
2016/02/17
60
0
Thread,Runnable,Callable. 多线程

编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable.   Runnable和Callable的区别是,   (1)Callable规定的方法是call(...

千惊万喜
2016/06/30
12
0
Java多线程5-Callable、Future 和FutureTask

前言 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变...

香沙小熊
2018/11/27
0
0
Callable,Runnable比较及用法以及创建线程的4种方法

编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable. Runnable和Callable的区别是, (1)Callable规定的方法是call(),Runnable...

geek_loser
2017/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MaxCompute安全管理指南-基础篇

背景及目的 方便和辅助MaxCompute的project owner或安全管理员进行project的日常安全运维,保障数据安全。 MaxCompute有安全模型,DataWorks也有安全模型,当通过DataWorks使用MaxCompute,而...

阿里云官方博客
9分钟前
0
0
MaxCompute安全管理指南-案例篇

通过《MaxCompute安全管理-基础篇》了解到MaxCompute和DataWorks的相关安全模型、两个产品安全方面的关联,以及各种安全操作后,本篇主要给出一些安全管理案例,给安全管理的成员作为参考。 ...

阿里云云栖社区
11分钟前
0
0
show-busy-java-threads.sh

#!/bin/bash# @Function# Find out the highest cpu consumed threads of java, and print the stack of these threads.## @Usage# $ ./show-busy-java-threads## @online-d......

月下狼
15分钟前
0
0
基于Spring Boot和Spring Cloud实现微服务架构

前言 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道。因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易...

架构师springboot
16分钟前
0
0
远程图片上传到七牛云的demo

from qiniu import Auth, BucketManager# 抓取文件到七牛def fetch(url): filename = str(time.time()).replace('.', '') # 获取鉴权对象 auth = Auth(access_key, secre......

Liens
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部