相同点: 两者都是接口 两者都需要调用Thread.start()启动 不同点: 实现Callable接口需要重写call()方法,实现Runnable接口需要重写run()方法。 实现Callbale接口的方法能返回执行结果而实现Runnable接口不能。 Callable接口允许抛出异常 实现Callable接口的线程可通过Future.cancel取消执行