Callable和Runable的差别:
实现Callable接口的线程都能返回执行结果,而实现Runable都不能返回执行结果
Callable接口的call()方法允许抛出异常,而Runable的Run()方法抛出异常只能内部消化不能上抛
Callable和Runable相同点:
两者都是接口
两者都可以编写多线程
两者都得调用Thread.start()方法启动
注意点:
Callable接口支持返回执行结果,此时需要调用FutureTast.get()方法实现,此方法会阻塞主线程直至获取到将来结果,当不调用这个方法的时候,主线程不会阻塞