zoukankan      html  css  js  c++  java
  • 6. Callable

    @FunctionalInterface (函数式接口)
    public interface Callable返回结果并可能引发异常的任务。 实现者定义一个没有参数的单一方法,称为call 。

    Callable接口类似于Runnable ,因为它们都是为其实例可能由另一个线程执行的类设计的。 然而,A Runnable不返回结果,也不能抛出被检查的异常。

    该Executors类包含的实用方法,从其他普通形式转换为Callable类。

    1. Callable 有返回值
    2. 可以抛出异常
    3. 方法不同。call()

    代码测试

    Thread 运行 Callable 线程

    package pers.vincent.matrix.subject.callable;
    
    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.FutureTask;
    
    public class CallableTest {
    
        public static void main(String[] args) throws ExecutionException, InterruptedException {
    
            MyThread2 myThread2 = new MyThread2();
            // A FutureTask可用于包装Callable或Runnable对象。 因为FutureTask实现Runnable ,一个FutureTask可以提交到一个Executor执行。
            Callable callable;
            FutureTask futureTask = new FutureTask<>(myThread2);
    
            new Thread(futureTask).start();
    
            String str = (String) futureTask.get();
            System.out.println(str);
        }
    
    }
    
    // 旧的多线程实现方法
    class MyThread implements Runnable{
    
        @Override
        public void run() {
    
        }
    }
    
    // callable
    class MyThread2 implements Callable<String>{
    
        @Override
        public String call() throws Exception {
            System.out.println("AAAAA");
            return "123";
        }
    }
    
  • 相关阅读:
    CentOS新系统必做的几件事
    CentOS基础指令备忘
    有向图的强连通分量
    模仿c的字符转整数函数 atoi
    N个骰子的点数和的概率分布
    c语言算法题目求职用
    copy指定目录下包括子目录中所有的文件
    js的页面交互
    js的数据类型、函数、流程控制及变量的四种声明方式
    z-index
  • 原文地址:https://www.cnblogs.com/blackBlog/p/13451433.html
Copyright © 2011-2022 走看看