|NO.Z.00108|——————————|BigDataEnd|——|Java&多线程.V20|——|Java.v20|创建启动线程|方式三|

一、创建和启动线程的方式三
### --- 线程池(熟悉)
### --- 实现Callable接口

——>        从Java5开始新增加创建线程的第三种方式为实现java.util.concurrent.Callable接口。
二、常用的方法如下:
方法声明 功能介绍
V call()  计算结果并返回
### --- FutureTask类

——>        java.util.concurrent.FutureTask类用于描述可取消的异步计算,
——>        该类提供了Future接口的基本实现,
——>        包括启动和取消计算、查询计算是否完成以及检索计算结果的方法,
——>        也可以用于获取方法调用后的返回结果。
三、常用的方法如下:
方法声明 功能介绍
FutureTask(Callable callable) 根据参数指定的引用来创建一个未来任务
V get() 获取call方法计算的结果
四、编程代码
package com.yanqi.task18;

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

public class ThreadCallableTest implements Callable {

    @Override
    public Object call() throws Exception {
        // 计算1 ~ 10000之间的累加和并打印返回
        int sum = 0;
        for (int i = 1; i <= 10000; i++) {
            sum +=i;
        }
        System.out.println("计算的累加和是:" + sum); // 50005000
        return sum;
    }

    public static void main(String[] args) {

        ThreadCallableTest tct = new ThreadCallableTest();
        FutureTask ft = new FutureTask(tct);
        Thread t1 = new Thread(ft);
        t1.start();
        Object obj = null;
        try {
            obj = ft.get();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        System.out.println("线程处理方法的返回值是:" + obj); // 50005000
    }
}
五、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=52649:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task18.ThreadCallableTest
计算的累加和是:50005000
线程处理方法的返回值是:50005000

Process finished with exit code 0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

posted on 2022-04-05 13:01  yanqi_vip  阅读(14)  评论(0)    收藏  举报

导航