Java Callable接口和Runnable接口的区别

  1. Callable接口的call()方法可以有返回值(通过Future接口的get()方法,不过此方法是阻塞性的),而Runnable接口的run()方法没有返回值
  2. Callable接口的call()方法可以声明抛出异常,而Runnable接口的run()方法不可以声明抛出异常(run方法出现异常时会直接抛出,打印出堆栈信息,不过可以通过自定义ThreadFactory的方法来捕捉异常)

你可能感兴趣的:(Java Callable接口和Runnable接口的区别)