java多线程 -- 创建线程的第三者方式 实现Callable接口

Posted 西北野狼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多线程 -- 创建线程的第三者方式 实现Callable接口相关的知识,希望对你有一定的参考价值。

Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口
Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常
Callable 需要依赖FutureTask ,FutureTask 也可以用作闭锁。

例子:

package com.company;

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * Created by MSI1 on 2017/3/30.
 */
public class TestCallableDemo {

    public static void main(String[] args) {

        try {
            DemoThread demoThread = new DemoThread();
            FutureTask<Integer> integerFutureTask = new FutureTask<>(demoThread);
            new Thread(integerFutureTask).start();
            Integer result = integerFutureTask.get();
            System.out.println("result = " + result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

    }
}

class DemoThread implements Callable<Integer> {

    @Override
    public Integer call() throws Exception {
        int sum = 0;
        for (int i = 0; i <= 100; i++) {
            sum = sum + i;
        }
        return sum;
    }
}

結果:

result = 5050

 



以上是关于java多线程 -- 创建线程的第三者方式 实现Callable接口的主要内容,如果未能解决你的问题,请参考以下文章

java中多线程的两种创建方式

第五周作业(Java多线程创建的三个方法)

第77题JAVA高级技术-多线程11(创建线程的5种方式)

java创建线程的方式有几种?

第77题JAVA高级技术-多线程11(创建线程的5种方式)

java 22 - 9 多线程之 代码实现的方式2