1.Callable 使用 call() 方法, Runnable 使用 run() 方法
2.call() 可以返回值, 而 run()方法不能返回。
2.call() 可以返回值, 而 run()方法不能返回。
3.call() 可以抛出受检查的异常,比如ClassNotFoundException, 而run()不能抛出受检查的异常。
4、由3可知call抛出异常可以捕获,而run不可以,为了解决这种情况,可在每个Thread对象上附着一个异常处理器,Thread.UncaughtExceptionHandler.uncaughtException()会在线程因未捕获异常而临近死亡的时被调用。