Runnable与Callable
发布日期:2021-06-27 12:56:03 浏览次数:29 分类:技术文章

本文共 687 字,大约阅读时间需要 2 分钟。

文章目录

Runnable与Callable

接口定义

callable接口

public interface callable
{
v call() throws Excepption;}

Runnable接口

public interface Runnable{
public abstract void run();}

Callable的使用步骤

  1. 编写类实现Callable接口 , 实现call方法
class XXX implements Callable
{
@Override public
call() throws Exception {
return T; }}
  1. 创建FutureTask对象 , 并传入第一步编写的Callable类对象
FutureTask
future = new FutureTask<>(callable);
  1. 通过Thread,启动线程
new Thread(future).start();

异同点分析

相同点

  • 都是接口
  • 都可以编写多线程程序
  • 都采用Thread.start()方法启动程序

不同点

  • Runnable没有返回值,而Callable可以返回执行结果
  • Callable接口的call()允许抛出异常,而Runnable的run()不能抛出

注意: Callalble接口支持返回执行结果,需要调用FutureTask.get()得到,此方法会阻塞主进程的继续往下执行,如果不调用不会阻塞。

转载地址:https://blog.csdn.net/weixin_43454088/article/details/117340182 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:线程池
下一篇:线程安全

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月06日 19时45分04秒