zoukankan      html  css  js  c++  java
  • Java多线程(四)实现多线程的三种方法之JUC的Callable接口

    什么是Callable:

    • Callable是java.util.concurrent的一个接口,常常需要与java.util.concurrent.Executor类一起使用.
    • java.util.concurrent简称JUC.

    Callable与Runnable的异同.

    不同点

    • Runnable没有返回值;Callable可以返回执行结果,是个泛型,和Future、FutureTask配合可以用来获取异步执行的结果.
    • Callable接口的call()方法允许抛出异常;Runnable的run()方法异常只能在内部消化,不能往上继续抛.

    注:Callalbe接口支持返回执行结果,需要调用FutureTask.get()得到,此方法会阻塞主进程的继续往下执行,如果不调用不会阻塞。

    以下是官方文档的解释:

     A Runnable, however, does not return a result and cannot throw a checked exception.

    相同点:

    • 都是接口
    • 都可以编写多线程程序
    • 都采用Thread.start()启动线程

    Callable接口的定义

    public interface Callable<V> {
        V call() throws Exception;
    }

    Runnable接口的定义

    public interface Runnable {
        public abstract void run();
    }

    参考:

    https://www.cnblogs.com/kaituorensheng/p/9502968.html?utm_source=debugrun&utm_medium=referral

  • 相关阅读:
    Centos7下rc.local文件开机不执行…
    Centos7添加密码安全策略
    Java8 时间日期类操作
    XML配置spring session jdbc实现session共享
    Spring Boot 2.x以后static下面的静态资源被拦截
    外观模式
    组合设计模式
    Java线程池源码解析
    观察者模式
    Java使用POI解析Excel表格
  • 原文地址:https://www.cnblogs.com/majestyking/p/12445736.html
Copyright © 2011-2022 走看看