zoukankan      html  css  js  c++  java
  • 创建执行线程方式三:实现Callable接口

    Callable接口

    ① Java 5.0 在 java.util.concurrent 提供了一个新的创建执行 线程的方式:Callable 接口
    ② Callable 接口类似于 Runnable,两者都是为那些其实例可 能被另一个线程执行的类设计的。

         但是 Runnable 不会返 回结果,并且无法抛出经过检查的异常。
    ③ Callable 需要依赖FutureTask ,FutureTask 也可以用作闭 锁

    TestCallable

    package com.aff.juc;
    
    import java.util.concurrent.Callable;
    import java.util.concurrent.FutureTask;
    
    /*1.创建执行线程的方式三:实现Callable接口,相较于实现Runable接口的方式,
          方法可有有返回值,并且可以跑出异常.
       2.执行Callable接口方式,需要FutureTask 实现类的支持,用于接收运算结果。
          FutureTask 是 Future 接口的实现类
       
    */
    public class TestCallable {
        public static void main(String[] args) {
            ThreadDemo4 td4 = new ThreadDemo4();
            // 1.执行Callable方式,需要FutureTask实现类支持,用于接收计算结果
            FutureTask<Integer> result = new FutureTask<>(td4);
            new Thread(result).start();
            // 2.接收线程运算后的结果
            try {
                Integer sum = result.get();
                System.out.println(sum);
                System.out.println("-----------");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    
    /*
     * class ThreadDemo3 implements Runnable{
     * 
     * @Override public void run() { } }
     */
    
    class ThreadDemo4 implements Callable<Integer> {
    
        @Override
        public Integer call() throws Exception {
            int sum = 0;
            for (int i = 0; i < 100; i++) {
                System.out.println(i);
                sum += i;
            }
            return sum;
        }
    }
    All that work will definitely pay off
  • 相关阅读:
    PHP使用Memcache来存储session 其他【转载】
    Linux 学习记录 20170218
    php 数组去重
    关于php的array_diff和array_diff_assoc的使用总结
    使用谷歌浏览器调试WEB前端的一些必备调试技巧
    MySql 赋值操作符"="与":="
    移动设备检测类Mobile_Detect.php
    PHP Filter 函数 日常可用
    以符合人类阅读的方式打印php数组【转载】
    JavaWeb:HttpSession(一)
  • 原文地址:https://www.cnblogs.com/afangfang/p/12631477.html
Copyright © 2011-2022 走看看