java 创建线程 Callable

一、语法

1、与Runnable区别

a、可以throws异常

b、有返回值,call方法

2、过程

1、实现

Callable<引用类型或包装类>

2、重写

call 方法,返回值类型为上面 的引用类型或包装类

3、实例化线程类

4、添加上面的线程类

FutureTask<引用类或包装类> futureTask = new FutureTask<>(线程类);

5、new Thread,开启线程

Thread thread = new Thread(futureTask, "A");
thread.start();

6、获取返回值

futureTask.get()

 二、案例

1、线程类

package com.wt.lock;

import java.util.concurrent.Callable;

public class Demon02Call implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        return 100;
    }
}

2、主类

package com.wt.lock;

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

public class Demon02 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        Demon02Call demon02Call = new Demon02Call();
        FutureTask<Integer> futureTask = new FutureTask<>(demon02Call);
        // 创建thread对象,执行线程
        Thread thread = new Thread(futureTask, "A");
        thread.start();
        // 获取返回值
        Integer integer = futureTask.get();
        System.out.println(integer);

    }
}

 

posted @ 2025-04-17 19:34  市丸银  阅读(23)  评论(0)    收藏  举报