1.接口的实现方法不同 Runable接口需要实现run方法 Callable接口需要实现call方法 2.异常情况 Runable接口的run()不能抛出异常,只能在方法内部处理 Callable接口的call()允许抛出异常 3.返回值 Runable接口的run()没有返回值 Callable接口的call()可以通过futureTask.get()方法获取执行结果,但该方法会阻塞主线程,必须等待子线程执行完成返回结果