谈谈多线程Runnable和Callable接口

  • Runnable接口代码
public interface Runnable {
    public abstract void run();
}
  • Callable接口代码
public interface Callable<V> {
    V call() throws Exception;
}

相同点:

  1. 两者都需要调用Thread.start()启动线程
  2. 两者都能编写多线程

不同点:

  1. Callable规定的方法是call(),Runnable规定的方法是run()
  2. Callable的任务执行后可返回值,而Runnable的任务是不能返回值的
  3. call方法可以抛出异常,run方法不可以
  4. 运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。

猜你喜欢

转载自blog.csdn.net/weixin_42658949/article/details/83756612
今日推荐