Runnable和Callable的区别

来源:互联网 发布:em算法 q函数 编辑:程序博客网 时间:2024/06/06 15:25

相同点:

  1. 两者都是接口;
  2. 两者都需要调用Thread.start启动线程。

不同点:

  1. 实现Callable接口的任务线程能返回执行结果,而实现Runnable的不能;
  2. Callable接口的call方法允许抛出异常,而Runnable接口的run方法的异常只能在内部消化,不能继续往上抛;
  3. Callable接口支持返回执行结果,此时需要FutureTask.get方法实现,此方法会阻塞主线程直到获取“将来”结果,当不调用此方法时,主线程不会阻塞!
0 0
原创粉丝点击