问题
Callable
和Runnable
的不同之处,它们如何使用
答案
不同之处
-
Callable
接口的call()
方法有返回值,可以抛出任意异常.Runnable
接口的run()
方法没有返回值,不能抛出未检查的异常.
使用方式
-
Runnable
接口的run()
方法可以结合Thread
类来创建一个新的线程,或者结合ExecutorService
来创建一个线程.Callable
接口的call()
方法通常只能结合ExecutorService
来创建一个线程,通过返回的Future
来获取返回值.