线程的创建-Callable接口

用Callable创建线程

实现Callable接口,重写call()方法,用线程池调用

package dayThread;
import java.util.concurrent.*;
/**
 * @Author 卫宏哲
 * @Date 2020/9/7 10:10
 * @Version 1.0
 */

/**
 *使用线程池  运行Callable接口实现类中的方法
 * call,获取返回值
 * 它是泛型接口  代表的是返回值类型
 */
public class Thread7  implements Callable<String> {
    
    

    @Override
    public String call() throws Exception {
    
    
        return "Callable接口实现线程的创建!";
    }
}
class Main{
    
    
public static void main(String[]args) throws ExecutionException, InterruptedException {
    
    
    //创建线程池工厂类静态方法
    ExecutorService es = Executors.newFixedThreadPool(2);
    //用来接收返回值
    Future<String> f = es.submit(new Thread7());

    String s = f.get();
    System.out.println(s);

   }
}

最后说一下Callable和runable的区别:
1,callable的核心是call方法 ,允许返回值,runable的核心是run方法。没有返回值。
2,call方法可以抛异常,但是run方法不行。
3,这两种方法都可以用于线程池,而thread类只支持runable。

猜你喜欢

转载自blog.csdn.net/weixin_44379187/article/details/108442552