(资料图片)

runnable和callable之间的区别如下:

相同点:

1.所有接口;

2.可以写多线程程序;

3.Thread.start()用于启动线程;

差异:

1.Runnable没有返回值;Callable可以返回执行结果,这是一个泛型,它可以用来获取与Future和FutureTask配合异步执行的结果。

2.可调用接口的call()方法允许抛出异常;Runnable的run()方法异常只能内部消化,不能向上抛出;

注意:Callalbe接口支持返回执行结果,需要通过调用FutureTask.get()获取。这个方法会阻止主进程继续执行,不调用也不会阻止。

本文到此结束,希望对大家有所帮助。

推荐内容