java 中thread/ runable / callable 的区别与联系

java 中thread/ runable / callable 的区别与联系

三者都可以启动一个任务,并且让任务去执行,但是也存在着以下不同

  1. thread 是一个类,子类继承后,可以不去覆盖其 void run() 方法,就能够启动一个线程。但是这个线程,什么事情都没干,依然是一个完整的线程。
  2. runnable 是一个接口,子类必须要实现其 void run() 方法,并且启动时,还需要依靠 thread 类,才能够启动。不能单独使用。
  3. callable 解决的是前两种方法只能异步执行,不能返回执行结果的问题,callable 可以返回需要的数据,但是也就造成了主类需要等待线程执行完毕。

总结

三个方式,各有所长,thread/ runnable 的差别不大,一般使用就按顺手的来即可;callable 可以返回执行结果,比较特别,可以在关注执行结果时,使用这个方法

你可能感兴趣的:(java 中thread/ runable / callable 的区别与联系)